vue-router 基本使用

368 阅读2分钟

最近有在用到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/…