美文网首页
vue2 — vue-router(1)

vue2 — vue-router(1)

作者: 守心向暖 | 来源:发表于2017-05-24 15:36 被阅读0次

    参考地址:https://router.vuejs.org/zh-cn/

    • NPM安装vue-router
    npm install vue-router (--save)
    
    • 使用
    // router.js
    import Vue from 'vue'
    import VueRouter from 'vue-router'
    // 引入页面组件
    import X from '../X'
    import Y from '../Y'
    import Z from '../Z'
    Vue.use(VueRouter)  // 模块化时必须
    export default new Router({
      mode: 'history',  // 设置H5模式,默认hash模式
      routes: [
        { path: '/x', component: X, name: 'x' },  // 无参
        { path: '/y/:id',   // 路径参数
          component: Y, 
          name: 'y', 
          children: [
            { path: 'z', component: Z, name: 'z' }
          ] 
        }  
      ]
    })
    // 根组件App.vue
    <!-- 路由匹配到的组件将在这里渲染 -->
    <router-view></router-view>
    // 组件内a标签
    <router-link to="/xx">将被渲染成a标签</router-link>
    // 入口文件main.js
    import router from './router';
    const app = new Vue({
      router
    })
    app.$mount('#app')
    
    • .router-link-active
    // 当<router-link>对应的路由匹配成功时自动设置class属性值,默认值
    // 修改通过路由的构造选项linkActiveClass全局配置
    export default new Router({
        ...
        linkActiveClass: 'xxx',
        ...
    })
    
    • 编程式导航
    // push向history添加新记录
    // 字符串
    router.push('home')
    // 对象
    router.push({ path: 'home' })
    // 命名的路由
    router.push({ name: 'user', params: { userId: 123 }})
    // 带查询参数,变成 /register?plan=private
    router.push({ path: 'register', query: { plan: 'private' }})
    // 替换掉当前的history记录
    router.replace(...)
    // 在history记录中前进或后退多少步,类似于window.history.go(n)
    router.go(n)
    
    • 重定向
    { path: '/a', redirect: '/b' }
    { path: '/a', redirect: to => {
        // 方法接受目标路由作为参数
        return 重定向的路径
        } 
    }
    
    • 别名
    { path: '/a', component: A, alias: '/b' }
    

    相关文章

      网友评论

          本文标题:vue2 — vue-router(1)

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