1. <div id="app">
  2. <h1>Hello App!</h1>
  3. <p>
  4. <!-- 使用 router-link 组件来导航. -->
  5. <!-- 通过传入 `to` 属性指定链接. -->
  6. <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
  7. <router-link to="/foo">Go to Foo</router-link>
  8. <router-link to="/bar">Go to Bar</router-link>
  9. </p>
  10. <!-- 路由出口 -->
  11. <!-- 路由匹配到的组件将渲染在这里 -->
  12. <router-view></router-view>
  13. </div>
  14. <template id='foo'>
  15. <p>this is foo!</p>
  16. </template>
  17. <template id='bar'>
  18. <p>this is bar!</p>
  19. </template>
  1. // 1. 定义(路由)组件。
  2. // 可以从其他文件 import 进来
  3. const Foo = { template:'#foo' };
  4. const Bar = { template:'#bar' };
  5. // 2. 定义路由
  6. // 每个路由应该映射一个组件。 其中"component" 可以是
  7. // 通过 Vue.extend() 创建的组件构造器,
  8. // 或者,只是一个组件配置对象。
  9. const routes = [
  10. { path: '/foo', component: Foo },
  11. { path: '/bar', component: Bar }
  12. ];
  13. // 3. 创建 router 实例,然后传 `routes` 配置
  14. // 你还可以传别的配置参数, 不过先这么简单着吧。
  15. const router = new VueRouter({ routes:routes });
  16. // 4. 创建和挂载根实例。
  17. // 记得要通过 router 配置参数注入路由,
  18. // 从而让整个应用都有路由功能
  19. const app = new Vue({ router:router }).$mount('#app');

2)动态路由匹配:

  1. <div id="app">
  2. <h1>Hello App!</h1>
  3. <p>
  4. <router-link to="/user/foo/post/123">Go to Foo</router-link>
  5. <router-link to="/user/bar/post/456">Go to Bar</router-link>
  6. </p>
  7. <router-view></router-view>
  8. </div>
  9. <template id='user'>
  10. <p>User:{{ $route.params.id }},Post:{{$route.params.post_id}}</p>
  11. </template>
  1. // 1. 定义组件。
  2. const User = {
  3. template:'#user',
  4. watch:{
  5. '$route'(to,from){
  6. console.log('从'+from.params.id+'到'+to.params.id);
  7. }
  8. }
  9. };
  10. // 2. 创建路由实例 (可设置多段路径参数)
  11. const router = new VueRouter({
  12. routes:[
  13. { path:'/user/:id/post/:post_id',component:User }
  14. ]
  15. });
  16. //3. 创建和挂载根实例
  17. const app = new Vue({ router:router }).$mount('#app');

3)嵌套路由:

  1. <div id="app">
  2. <h1>Hello App!</h1>
  3. <p>
  4. <router-link to="/user/foo">Go to Foo</router-link>
  5. <router-link to="/user/foo/profile">Go to profile</router-link>
  6. <router-link to="/user/foo/posts">Go to posts</router-link>
  7. </p>
  8. <router-view></router-view>
  9. </div>
  10. <template id='user'>
  11. <div>
  12. <h2>User:{{ $route.params.id }}</h2>
  13. <router-view></router-view>
  14. </div>
  15. </template>
  16. <template id="userHome">
  17. <p>主页</p>
  18. </template>
  19. <template id="userProfile">
  20. <p>概况</p>
  21. </template>
  22. <template id="userPosts">
  23. <p>登录信息</p>
  24. </template>
  1. // 1. 定义组件。
  2. const User = {
  3. template:'#user'
  4. };
  5. const UserHome = {
  6. template:'#userHome'
  7. };
  8. const UserProfile = {
  9. template:'#userProfile'
  10. };
  11. const UserPosts = {
  12. template:'#userPosts'
  13. };
  14. // 2. 创建路由实例
  15. const router = new VueRouter({
  16. routes:[
  17. { path:'/user/:id', component:User,
  18. children:[
  19. // 当 /user/:id 匹配成功,
  20. // UserHome 会被渲染在 User 的 <router-view> 中
  21. { path: '', component: UserHome},
  22. // 当 /user/:id/profile 匹配成功,
  23. // UserProfile 会被渲染在 User 的 <router-view> 中
  24. { path:'profile', component:UserProfile },
  25. // 当 /user/:id/posts 匹配成功
  26. // UserPosts 会被渲染在 User 的 <router-view> 中
  27. { path: 'posts', component: UserPosts }
  28. ]
  29. }
  30. ]
  31. });
  32. //3. 创建和挂载根实例
  33. const app = new Vue({ router:router }).$mount('#app');

4)编程式路由:

  1. <div id="app">
  2. <h1>Hello App!</h1>
  3. <p>
  4. <router-link to="/user/foo">Go to Foo</router-link>
  5. </p>
  6. <router-view></router-view>
  7. </div>
  8. <template id='user'>
  9. <h2>User:{{ $route.params.id }}</h2>
  10. </template>
  11. <template id="register">
  12. <p>注册</p>
  13. </template>
  1. // 1. 定义组件。
  2. const User = {
  3. template:'#user'
  4. };
  5. const Register = {
  6. template:'#register'
  7. };
  8. // 2. 创建路由实例
  9. const router = new VueRouter({
  10. routes:[
  11. { path:'/user/:id', component:User },
  12. { path:'/register', component:Register }
  13. ]
  14. });
  15. //3. 创建和挂载根实例
  16. const app = new Vue({ router:router }).$mount('#app');
  17. //4.router.push(location)
  18. router.push({ path: 'register', query: { plan: 'private' }});

5)命名路由:

  1. <div id="app">
  2. <h1>Named Routes</h1>
  3. <p>Current route name: {{ $route.name }}</p>
  4. <ul>
  5. <li><router-link :to="{ name: 'home' }">home</router-link></li>
  6. <li><router-link :to="{ name: 'foo' }">foo</router-link></li>
  7. <li><router-link :to="{ name: 'bar', params: { id: 123 }}">bar</router-link></li>
  8. </ul>
  9. <router-view class="view"></router-view>
  10. </div>
  11. <template id='home'>
  12. <div>This is Home</div>
  13. </template>
  14. <template id='foo'>
  15. <div>This is Foo</div>
  16. </template>
  17. <template id='bar'>
  18. <div>This is Bar {{ $route.params.id }}</div>
  19. </template>
  1. const Home = { template: '#home' };
  2. const Foo = { template: '#foo' };
  3. const Bar = { template: '#bar' };
  4. const router = new VueRouter({
  5. routes: [
  6. { path: '/', name: 'home', component: Home },
  7. { path: '/foo', name: 'foo', component: Foo },
  8. { path: '/bar/:id', name: 'bar', component: Bar }
  9. ]
  10. });
  11. new Vue({ router:router }).$mount('#app');

6)命名视图:

  1. <div id="app">
  2. <router-link to="/">Go to Foo</router-link>
  3. <router-view class="view one"></router-view>
  4. <router-view class="view two" name="a"></router-view>
  5. <router-view class="view three" name="b"></router-view>
  6. </div>
  7. <template id='foo'>
  8. <div>This is Foo</div>
  9. </template>
  10. <template id='bar'>
  11. <div>This is Bar {{ $route.params.id }}</div>
  12. </template>
  13. <template id='baz'>
  14. <div>This is baz</div>
  15. </template>
  1. const Foo = { template: '#foo' };
  2. const Bar = { template: '#bar' };
  3. const Baz = { template: '#baz' };
  4. const router = new VueRouter({
  5. routes: [
  6. {
  7. path: '/',
  8. components: {
  9. default:Foo,
  10. a:Bar,
  11. b:Baz
  12. }
  13. }
  14. ]
  15. });
  16. new Vue({ router:router }).$mount('#app');

vue router 几种方式对比 (转载)的更多相关文章

  1. Linux上删除大量文件几种方式对比

    目录 Linux上删除大量文件几种方式对比 1. rm删除:因为文件数量太多,rm无法删除(报错) 2. find查找删除:-exec 3. find查找删除:xargs 4. find调用-dele ...

  2. Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比

    Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比   上一篇文章: Android自动化测试中AccessibilityService获取控件信息(1 ...

  3. vue.js 三种方式安装--npm安装

    Vue.js是一个构建数据驱动的 web 界面的渐进式框架.     Vue.js 的目标是通过简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易上手,便于与第三方库或既有项目整合.     ...

  4. 每日技术总结:vue router传参方式,js获取设备高度

    今天貌似没什么问题,23333…… 1.vue router 路由传参的方式 应用情景:从分类页(category.vue)进入商品列表页(list.vue),需要传递商品分类id(catId),商品 ...

  5. Spark读写Hbase的二种方式对比

    作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 一.传统方式 这种方式就是常用的TableInputFormat和TableOutputForm ...

  6. ASP.NET页面之间传递值的几种方式(转载)

    页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...

  7. Windows上安装配置SSH教程(7)——几种方式对比

    服务端:Windows XP 客户端:Windows 10 由于Cygwin也可以安装OpenSSH,所以客户端其实可以直接使用Cygwin安装OpenSSH,那么在Windows下使用SCP(安全拷 ...

  8. 在C#中,Json的序列化和反序列化的几种方式总结 转载

    转载自  https://www.cnblogs.com/caofangsheng/p/5687994.html    谢谢 在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据 ...

  9. vue.js 三种方式安装

    Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易于上手 ...

随机推荐

  1. mfc 类成员函数

    知识点 类成员变量初值 类的构造函数 类成员函数 类成员函数的位置 一.类成员变量初值 二.类的构造函数 构造函数 是一种特殊的方法,主要用来在创建对象时初始化对象,即为对象成员变量赋初始值. 构造函 ...

  2. BZOJ2034 【2009国家集训队】最大收益

    题面 题解 第一眼:线段树优化连边的裸题 刚准备打,突然发现: \(1 \leq S_i \leq T_i \leq 10^8\) 这™用个鬼的线段树啊 经过一番寻找,在网上找到了一篇论文 大家可以去 ...

  3. 5285: [Hnoi2018]寻宝游戏

    5285: [Hnoi2018]寻宝游戏 链接 分析: 从下面依次确定运算符号,然后在确定的过程中,需要确定的位数会逐渐减少.比如最后有一个1,如果在从下往上确定了一个or 1,那么再往前可以随便选了 ...

  4. [NOI2016]区间 线段树

    [NOI2016]区间 LG传送门 考虑到这题的代价是最长边减最短边,可以先把边按长度排个序,双指针维护一个尺取的过程,如果存在包含某个点的区间数\(\ge m\),就更新答案并把左指针右移,这样做的 ...

  5. jquery 直接访问图片路径

    jQuery("#img").attr("src",function(){return this.src+"?"});

  6. Object C学习笔记3-对象的使用和定义

    1. 如何定义一个对象 在面向对象的语言中,定义一个对象是使用Class关键字,而在Object-C中则是使用@interface,@interface用于定义对象的属性和方法,@implementa ...

  7. Zabbix实战-简易教程--订阅类

    一.需求提出 最近数据中心有一个新的需求,有一批后台任务需要在每天固定时间点运行(凌晨8:00),现在希望能够把这个任务执行的结果定时上报给他. 说明:执行的任务为一个sql查询,查询出来的是每个任务 ...

  8. 神器 Tmux 的超绝便利

    服务器的任务不间断运行,就是利用了 tmux 的特性.就是说,一般 ssh 是断开就会停止所有之前连接 ssh 期间运行的所有 processes,而 tmux 的核心业务不在于把屏幕分成几块好看,而 ...

  9. 腾讯hr面

    腾讯hr面面经 20181018 寒暄几句 hr自我介绍 hr介绍面试和最后出结果的时间周期 进入主题 自我介绍 考研成绩专业第一 聊考研(考研的经过.考研和保研) 本科成绩 考研成绩超长发挥还是正常 ...

  10. java中JVM的原理

    转载:https://blog.csdn.net/witsmakemen/article/details/28600127 一.java虚拟机的生命周期: Java虚拟机的生命周期 一个运行中的Jav ...