最近有在用到vue-router的时候发现自己有的地方还是不很熟悉,特此参考晚上优秀博主的文章记录一下
转载:
官方文档地址在此:router.vuejs.org/zh/guide/#h…
vue-router 基本使用 www.cnblogs.com/SamWeb/p/66…
git上传本地代码到github(超详细)blog.csdn.net/java_2017_c…
基本概念
route
routes是一条路由,由这个英文单词也可以看出来,它是单数,
Home按钮 => home内容
{ path: '/foo', component: Foo }
这是一条route
about按钮 => about 内容
{ path: '/bar', component: Bar }
这是另一条路由。
routes
routes是一组路由,把上面的每一条路由组合起来,形成一个数组。
[{home 按钮 =>home内容 }, { about按钮 => about 内容}]
const routes = [
{ path: '/foo', component: Foo },
{ path: '/bar', component: Bar }
]
router
router 是一个机制,相当于一个管理者,它来管理路由。因为routes 只是定义了一组路由,它放在哪里是静止的,当真正来了请求,怎么办? 就是当用户点击home 按钮的时候,怎么办?这时router 就起作用了,它到routes 中去查找,去找到对应的 home 内容,所以页面中就显示了 home 内容。
vue-router中的路由实现
页面实现
在vue-router中, 我们看到它定义了两个标签 和来对应点击和显示部分。 就是定义页面中点击的部分, 定义显示部分,就是点击后,区配的内容显示在什么地方。所以 还有一个非常重要的属性 to,定义点击之后,要到哪里去, 如:<router-link to="/home">Home
JS中的路由配置
首先要定义route, 一条路由的实现。它是一个对象,由两个部分组成: path和component. path 指路径,component 指的是组件。如:{path:’/home’, component: home}
我们这里有两条路由,组成一个routes:
const routes = [
{ path: '/home', component: Home },
{ path: '/about', component: About }
]
最后创建router 对路由进行管理,它是由构造函数 new vueRouter() 创建,接受routes 参数。
const router = new VueRouter({
routes // routes: routes 的简写
})
配置完成后,把router 实例注入到 vue 根实例中,就可以使用路由了
const app = new Vue({
router
}).$mount('#app')
执行过程:当用户点击 router-link 标签时,会去寻找它的 to 属性, 它的 to 属性和 js 中配置的路径{ path: '/home', component: Home} path 一一对应,从而找到了匹配的组件, 最后把组件渲染到 标签所在的地方。所有的这些实现才是基于hash 实现的。
参考代码: github.com/linyao2352/…