Vue路由

作者: klmhly | 来源:发表于2018-06-12 10:49 被阅读28次

一、安装依赖

1. Vue-router模块
Vue的路由功能主要依靠Vue-router模块来实现,所以必须在项目中安装该依赖模块

npm i Vue-router

2. Vue.use()明确说明要使用路由

import VueRouter from 'vue-router'
Vue.use(VueRouter)

二、使用路由的4大步骤

1. 定义(路由)组件
组件可以从其他文件import进来

//导入组件
import Header from './layout/header.vue'
import Footer from './layout/footer.jsx'

//定义组件
const Foo = { template: '<div>foo</div>' }

2. 定义路由
定义一个路由有很多选项,比如路由的路径path,name,组件等等。所有定义的路由被放到一个数组里,每个定义路由用对象形式。

// 定义路由
export default [
  //一个简单的路由
  {
    path: '/',
    redirect: '/app'
  },

  //一个写了较多配置的路由
  {
    path: '/app/:id',
    props: (route) => ({ id: route.query.b }), // 可以将id以props的形式传给Todo组件
    component: () => import('../views/todo/todo.vue'),
    name: 'app',
    meta: {
      title: 'this is app',
      description: 'i am apple'
    },
    beforeEnter (to, from, next) {
      console.log('app route before enter')
      next()
    }
    children: [
      {
        path: 'test',
        component: Login
      }
    ]
  },
]

3. 创建router实例,然后把第2步的配置传进来

const router = new ({
    routes: routes    //或者直接缩写routes
})

4. 在根实例注入路由实例
从根实例注入第3步创建的路由实例,则整个应用都有路由功能

new Vue({
  router,    //这样就把第3步创建的router实例注入到了根实例
  render: (h) => h(App)
}).$mount('#root') // mount(root),将App组件挂载到入口文件index.js的root这个dom元素上

三、在模板文件进行路由导航

1. <router-link>导航【this.$router.push({path:"})】
router-link的导航方式有以下几种
@1 : 直接在to属性指明路由路径进行匹配路由

<router-link to="/app/123">app123</router-link>

@2 : 使用v:bind:path匹配路由定义的name选项,进而达到路由的目的

<router-link :to="{ path: "/app/123" }"> app123 </router-link>
<router-link :to="{ path: "/app",params: { userId: 123 } }"> app123 </router-link>
<router-link :to="{ path: 'register', query: { plan: 'private' }}">Register</router-link>

@3 :使用name来路由

注意:这种方式 to前面一定要加v-bind(:),这样才会编译,否则,会把to当原来的属性,认为to的内容就是路径

<router-link :to="{ name: 'app', params: { userId: 123 }}">User</router-link>

2. <router-view>渲染
在router-link导航到的路由,将会把这个路由的匹配组件内容渲染到router-view所在的位置。
router-view只有一个name属性,用于区分多个路由渲染的不同的位置。

相关文章

  • Vue应用

    Vue项目 Vue结构 Vue项目打包与发布 Vue语法二 Vue网络请求 Vue路由 动态路由 编程式路由导航

  • vue路由、自定义指令、脚手架

    *Vue vue-router 一、路由 一、导航式路由 路由路径由

  • Vue路由

    一、Vue路由基础用法: 二、Vue路由配置的抽出 三、路由动态传值: 四、路由的跳转方式: 五、路由的hash模...

  • 手写 Vue Router、手写响应式实现、虚拟 DOM 和 D

    Vue-Router 原理实现 一、Vue-Router 动态路由 二、Vue-Router 嵌套路由 三、Vue...

  • 2018-09-19 vue 八

    一 :路由路由:vue-router是Vue的工具库 vue-router.js下载:npm install ...

  • 6 VUE路由

    vue-> SPA应用,单页面应用(引入vue-router.js) 路由嵌套(多层路由): 路由其他信息:

  • vue路由的介绍(二)--vue动态路由和get的传值

    vue动态路由和get的传值---->同属于路由的传参 1,vue动态路由: 动态路由的配置: ①,在配置路由时加...

  • 2018-09-23 路由

    1.路由 路由:vue-router是Vue的工具库 vue-router.js下载:npm install ...

  • 2018-09-19 Vue 第八天

    1.路由 路由:vue-router是Vue的工具库 vue-router.js下载:npm install ...

  • vue路由

    vue路由--- SPA应用,单页面应用vue-resouce 交互vue-router 路由根据不同url地址...

网友评论

    本文标题:Vue路由

    本文链接:https://www.haomeiwen.com/subject/dhbteftx.html