router是什么意思 路由器router中文含义( 二 )

  • 给vm及组件对象挂载的方式 : Object.defineProperty(Vue.prototype,’$router’,{
  • get:function () { return 自己的router对象;
  • }
  • })
  • 嵌套路由
    需要根据锚点值的改变,仅仅变化上图中的Profile到Posts组件,即可使用嵌套路由
    • 代码思想
    • router-view第一层中,包含一个router-view
    • 1:router-view的细分
    • 2:每一个坑挖好了,要对应单独的组件
    • 使用须知: 1:router-view包含router-view 2:路由children路由
    路由守卫
    它其实就是一个路由改变的事件回调函数
    • 全局路由守卫
    • 前置router.beforeEach((to, from,next) => {})
    • 后置router.afterEach((to, from) => {})
    • 路由独享的守卫
    • const router = new VueRouter({
    • routes: [
    • {
    • path: ‘/foo’,
    • component: Foo,
    • beforeEnter: (to, from, next) =>{
    • // …
    • }
    • }
    • ]
    • })
    • 组件内的守卫
    • 1:路由配置
    • {path:”/xxx/:id”}
    • 2:router-link
    • <router-link to=”/xxx/1″
    • <router-link to=”/xxx/2″
    • const Foo = {
    • template: `…`,
    • beforeRouteEnter (to, from, next) {
    • // 在渲染该组件的对应路由被 confirm 前调用
    • // 不!能!获取组件实例 `this`
    • // 因为当守卫执行前,组件实例还没被创建
    • // 但是,可以这样用
    • next(vm => {
    • // 通过 `vm` 访问组件实例-> 未来的组件this
    • vm.msg = ‘数据在此’;
    • })
    • },
    • beforeRouteUpdate (to, from, next) {
    • // 触发条件见下文
    • // 可以访问组件实例 `this`
    • },
    • beforeRouteLeave (to, from, next) {
    • // 导航离开该组件的对应路由时调用
    • // 可以访问组件实例 `this`
    • }
    • }
    • beforeRouteUpdate的触发条件(动态路由参数变化时)
    • next
    • next(‘/xxx’)
    • // 或者
    • next({name:’路由对象的name属性’});
    • 放行next();
    • 取消本次导航(url恢复成点击前的)next(false)
    • 重定向
    • to||from
    • 该对象中的.fullPath属性比较常用,也就是当前的url
    守卫meta属性的应用
    • 路由meta元数据 -> meta是对于路由规则是否需要验证权限的配置
    • 路由对象中 和name属性同级 { meta:{ isChecked:true } }
    • 路由钩子 -> 权限控制的函数执行时期
    • 每次路由匹配后, 渲染组件到router-view之前
    • router.beforeEach(function(to,from,next) {
    • // 判断to或from的fullPath即可
    • } )
    编程导航
    • 1: 跳到指定的锚点,并显示页面 this.$router.push({ name:’xxx’,query:{id:1},params:{name:’abc’} });
    • 2: 配置规则 {name:’xxx’,path:’/xxx/:name’}
    • 3: 根据历史记录.前进或后退
    • this.$router.go(-1|1);
    • 1代表进一步,-1是退一步
    过渡效果及缓存
    我们需要在路由改变时变化页面,ok!同时我们希望加上一些淡入淡出等效果,就可以用上transition内置组件
    另外,考虑到缓存问题,就加上keep-alive组件结合使用
    因此,你看到是这样的
    <transition>
    <keep-alive>
    <router-view></router-view>
    </keep-alive>
    </transition>
    transition及keep-alive详情参考文档中《内置组件》部分
    最后附上实现原理


    以上关于本文的内容,仅作参考!温馨提示:如遇健康、疾病相关的问题,请您及时就医或请专业人士给予相关指导!

    「四川龙网」www.sichuanlong.com小编还为您精选了以下内容,希望对您有所帮助: