vue router 几种方式对比 (转载)
- <div id="app">
- <h1>Hello App!</h1>
- <p>
- <!-- 使用 router-link 组件来导航. -->
- <!-- 通过传入 `to` 属性指定链接. -->
- <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
- <router-link to="/foo">Go to Foo</router-link>
- <router-link to="/bar">Go to Bar</router-link>
- </p>
- <!-- 路由出口 -->
- <!-- 路由匹配到的组件将渲染在这里 -->
- <router-view></router-view>
- </div>
- <template id='foo'>
- <p>this is foo!</p>
- </template>
- <template id='bar'>
- <p>this is bar!</p>
- </template>
- // 1. 定义(路由)组件。
- // 可以从其他文件 import 进来
- const Foo = { template:'#foo' };
- const Bar = { template:'#bar' };
- // 2. 定义路由
- // 每个路由应该映射一个组件。 其中"component" 可以是
- // 通过 Vue.extend() 创建的组件构造器,
- // 或者,只是一个组件配置对象。
- const routes = [
- { path: '/foo', component: Foo },
- { path: '/bar', component: Bar }
- ];
- // 3. 创建 router 实例,然后传 `routes` 配置
- // 你还可以传别的配置参数, 不过先这么简单着吧。
- const router = new VueRouter({ routes:routes });
- // 4. 创建和挂载根实例。
- // 记得要通过 router 配置参数注入路由,
- // 从而让整个应用都有路由功能
- const app = new Vue({ router:router }).$mount('#app');
2)动态路由匹配:
- <div id="app">
- <h1>Hello App!</h1>
- <p>
- <router-link to="/user/foo/post/123">Go to Foo</router-link>
- <router-link to="/user/bar/post/456">Go to Bar</router-link>
- </p>
- <router-view></router-view>
- </div>
- <template id='user'>
- <p>User:{{ $route.params.id }},Post:{{$route.params.post_id}}</p>
- </template>
- // 1. 定义组件。
- const User = {
- template:'#user',
- watch:{
- '$route'(to,from){
- console.log('从'+from.params.id+'到'+to.params.id);
- }
- }
- };
- // 2. 创建路由实例 (可设置多段路径参数)
- const router = new VueRouter({
- routes:[
- { path:'/user/:id/post/:post_id',component:User }
- ]
- });
- //3. 创建和挂载根实例
- const app = new Vue({ router:router }).$mount('#app');
3)嵌套路由:
- <div id="app">
- <h1>Hello App!</h1>
- <p>
- <router-link to="/user/foo">Go to Foo</router-link>
- <router-link to="/user/foo/profile">Go to profile</router-link>
- <router-link to="/user/foo/posts">Go to posts</router-link>
- </p>
- <router-view></router-view>
- </div>
- <template id='user'>
- <div>
- <h2>User:{{ $route.params.id }}</h2>
- <router-view></router-view>
- </div>
- </template>
- <template id="userHome">
- <p>主页</p>
- </template>
- <template id="userProfile">
- <p>概况</p>
- </template>
- <template id="userPosts">
- <p>登录信息</p>
- </template>
- // 1. 定义组件。
- const User = {
- template:'#user'
- };
- const UserHome = {
- template:'#userHome'
- };
- const UserProfile = {
- template:'#userProfile'
- };
- const UserPosts = {
- template:'#userPosts'
- };
- // 2. 创建路由实例
- const router = new VueRouter({
- routes:[
- { path:'/user/:id', component:User,
- children:[
- // 当 /user/:id 匹配成功,
- // UserHome 会被渲染在 User 的 <router-view> 中
- { path: '', component: UserHome},
- // 当 /user/:id/profile 匹配成功,
- // UserProfile 会被渲染在 User 的 <router-view> 中
- { path:'profile', component:UserProfile },
- // 当 /user/:id/posts 匹配成功
- // UserPosts 会被渲染在 User 的 <router-view> 中
- { path: 'posts', component: UserPosts }
- ]
- }
- ]
- });
- //3. 创建和挂载根实例
- const app = new Vue({ router:router }).$mount('#app');
4)编程式路由:
- <div id="app">
- <h1>Hello App!</h1>
- <p>
- <router-link to="/user/foo">Go to Foo</router-link>
- </p>
- <router-view></router-view>
- </div>
- <template id='user'>
- <h2>User:{{ $route.params.id }}</h2>
- </template>
- <template id="register">
- <p>注册</p>
- </template>
- // 1. 定义组件。
- const User = {
- template:'#user'
- };
- const Register = {
- template:'#register'
- };
- // 2. 创建路由实例
- const router = new VueRouter({
- routes:[
- { path:'/user/:id', component:User },
- { path:'/register', component:Register }
- ]
- });
- //3. 创建和挂载根实例
- const app = new Vue({ router:router }).$mount('#app');
- //4.router.push(location)
- router.push({ path: 'register', query: { plan: 'private' }});
5)命名路由:
- <div id="app">
- <h1>Named Routes</h1>
- <p>Current route name: {{ $route.name }}</p>
- <ul>
- <li><router-link :to="{ name: 'home' }">home</router-link></li>
- <li><router-link :to="{ name: 'foo' }">foo</router-link></li>
- <li><router-link :to="{ name: 'bar', params: { id: 123 }}">bar</router-link></li>
- </ul>
- <router-view class="view"></router-view>
- </div>
- <template id='home'>
- <div>This is Home</div>
- </template>
- <template id='foo'>
- <div>This is Foo</div>
- </template>
- <template id='bar'>
- <div>This is Bar {{ $route.params.id }}</div>
- </template>
- const Home = { template: '#home' };
- const Foo = { template: '#foo' };
- const Bar = { template: '#bar' };
- const router = new VueRouter({
- routes: [
- { path: '/', name: 'home', component: Home },
- { path: '/foo', name: 'foo', component: Foo },
- { path: '/bar/:id', name: 'bar', component: Bar }
- ]
- });
- new Vue({ router:router }).$mount('#app');
6)命名视图:
- <div id="app">
- <router-link to="/">Go to Foo</router-link>
- <router-view class="view one"></router-view>
- <router-view class="view two" name="a"></router-view>
- <router-view class="view three" name="b"></router-view>
- </div>
- <template id='foo'>
- <div>This is Foo</div>
- </template>
- <template id='bar'>
- <div>This is Bar {{ $route.params.id }}</div>
- </template>
- <template id='baz'>
- <div>This is baz</div>
- </template>
- const Foo = { template: '#foo' };
- const Bar = { template: '#bar' };
- const Baz = { template: '#baz' };
- const router = new VueRouter({
- routes: [
- {
- path: '/',
- components: {
- default:Foo,
- a:Bar,
- b:Baz
- }
- }
- ]
- });
- new Vue({ router:router }).$mount('#app');
vue router 几种方式对比 (转载)的更多相关文章
- Linux上删除大量文件几种方式对比
目录 Linux上删除大量文件几种方式对比 1. rm删除:因为文件数量太多,rm无法删除(报错) 2. find查找删除:-exec 3. find查找删除:xargs 4. find调用-dele ...
- Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比
Android自动化测试中AccessibilityService获取控件信息(2)-三种方式对比 上一篇文章: Android自动化测试中AccessibilityService获取控件信息(1 ...
- vue.js 三种方式安装--npm安装
Vue.js是一个构建数据驱动的 web 界面的渐进式框架. Vue.js 的目标是通过简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易上手,便于与第三方库或既有项目整合. ...
- 每日技术总结:vue router传参方式,js获取设备高度
今天貌似没什么问题,23333…… 1.vue router 路由传参的方式 应用情景:从分类页(category.vue)进入商品列表页(list.vue),需要传递商品分类id(catId),商品 ...
- Spark读写Hbase的二种方式对比
作者:Syn良子 出处:http://www.cnblogs.com/cssdongl 转载请注明出处 一.传统方式 这种方式就是常用的TableInputFormat和TableOutputForm ...
- ASP.NET页面之间传递值的几种方式(转载)
页面传值是学习asp.net初期都会面临的一个问题,总的来说有页面传值.存储对象传值.ajax.类.model.表单等.但是一般来说,常用的较简单有QueryString,Session,Cookie ...
- Windows上安装配置SSH教程(7)——几种方式对比
服务端:Windows XP 客户端:Windows 10 由于Cygwin也可以安装OpenSSH,所以客户端其实可以直接使用Cygwin安装OpenSSH,那么在Windows下使用SCP(安全拷 ...
- 在C#中,Json的序列化和反序列化的几种方式总结 转载
转载自 https://www.cnblogs.com/caofangsheng/p/5687994.html 谢谢 在这篇文章中,我们将会学到如何使用C#,来序列化对象成为Json格式的数据 ...
- vue.js 三种方式安装
Vue.js(读音 /vjuː/, 类似于 view)是一个构建数据驱动的 web 界面的渐进式框架.Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.它不仅易于上手 ...
随机推荐
- 20155327Exp6 信息搜集与漏洞扫描
20155327Exp6 信息搜集与漏洞扫描 实验过程 一.信息搜集 whois 在kali终端输入whois 网址,查看注册的公司.服务.注册省份.传真.电话等信息. dig或nslookup域名查 ...
- AngularJS 从DOM中获取scope
节选官方文档: 原文:https://docs.angularjs.org/guide/scope scope是附加在DOM上,使用了ng-app指令的DOM就是root scope.一般是<h ...
- P4171 [JSOI2010]满汉全席
简要的学了一下2-sat,然而不会输出方案. 就是个sb模板题啦 // luogu-judger-enable-o2 #include<bits/stdc++.h> #define il ...
- AServer - 基于Asp.net core Kestrel的超迷你http服务器
AServer是基于ASP.NET Core Kestrel封装的一个超迷你http服务器.它可以集成进你的Core程序里,用来快速的响应Http请求,而不需要集成整个ASP.NET Core MVC ...
- iTerm的安装以及配置Oh My Zsh
iTerm说简单点就是Windows的命令提示符,可能说这个大家感觉没用过,其实也就是人们经常使用CMD,相当于苹果的终端,但是比自带的终端强大多了. 本文就是简单的说一下安装和简单的配置过程. 首先 ...
- python连接数据库问题小结
在使用python连接数据库的时候遇到了这个问题: 大概意思就是在django的setting.py中配置的用户名和密码报错. 主要就是修改setting.py的配置 其中在里边的name和user项 ...
- python属性访问
1.python属性访问魔法方法: >>> class C: def __getattribute__(self,name): print("getattribute&qu ...
- 前端常见算法面试题之 - 重建二叉树[JavaScript解法]
题目描述 输入某二叉树的前序遍历和中序遍历的结果,请重建出该二叉树.假设输入的前序遍历和中序遍历的结果中都不含重复的数字.例如输入前序遍历序列[1,2,4,7,3,5,6,8],和中序遍历序列[4,7 ...
- IDEA配置maven中央库
分两步: STEP :配置maven: STEP :配置IDEA.区分默认配置和项目级配置. STEP 1:maven中央库配置 国内常用的maven库主要是阿里云maven库.华为云maven. 其 ...
- i++ i+=1 i=i+1 汇编代码效率比较
结论:一样.编译器和编译器之间可能有点区别但是程序不会变. 0x00 一直不清楚到底是因为懒还是真的为了效率,要把" i = i + 1 "写成" i++ "或 ...