zoukankan      html  css  js  c++  java
  • vue-router 知识点

    export default new Router({
        mode: 'history',
        scrollBehavior,
        routes: [
            {
                path: '/',
                name: 'StoreDemo',
                component: resolve => require(['../components/StoreDemo'], resolve),
                // 配置了scrollToTop为true,点击这个路由,页面会滚到顶部
                // 如果没配置scrollToTop或配置scrollToTop为false,点击这个路由,页面保持原先的滚动位置
                // 效果说明:点击这个路由后,滚动页面隐藏顶部的一部分,再点击路由:/promisedemo,页面保持原先的滚动位置;再点击这个路由,页面会滚动到顶部,因为配置了scrollToTop为true
                meta: { scrollToTop: true }
            },
            {
                path: '/promisedemo',
                name: 'PromiseDemo',
                component: r => require.ensure([], () => r(require('../components/PromiseDemo')), 'demo')
            }
     ]
    })
    

    详细代码见:https://github.com/cag2050/vue_product_demo/blob/master/src/router/index.js

    • vue-router配置路由,使用vue的异步组件技术,可以实现按需加载。
      但是,这种情况下一个组件生成一个js文件。
      举例如下:
            {
                path: '/promisedemo',
                name: 'PromiseDemo',
                component: resolve => require(['../components/PromiseDemo'], resolve)
            }
    
    • vue-router配置路由,使用webpack的require.ensure技术,也可以实现按需加载。
      这种情况下,多个路由指定相同的chunkName,会合并打包成一个js文件。
      举例如下:
            {
                path: '/promisedemo',
                name: 'PromiseDemo',
                component: r => require.ensure([], () => r(require('../components/PromiseDemo')), 'demo')
            },
            {
                path: '/hello',
                name: 'Hello',
                // component: Hello
                component: r => require.ensure([], () => r(require('../components/Hello')), 'demo')
            }
    
    • 问:使用vue-router之后,页面的切换是局部刷新,这样就会产生一个问题,如果某个页面这个用户没有权限访问,这个如何来控制?
      答:有了导航钩子,这个自然就可以放到导航钩子来执行。

    • 点击<router-link :to="...">等同于调用router.push(...)

    • 前端路由,直接请求相应的组件;
      后端路由,请求后会将页面整个刷新。

    • location.href 会先走后端路由;

    • vue-router的这种写法走前端路由:

    next({
      path: '/process'
    })
    
    • 嵌套路由:children

    • 当前路由路径:this.$route.path

  • 相关阅读:
    阿里云Ubuntu环境搭建Docker服务
    Cocos2d-x手机游戏开发中-组合动作
    Java中将时间戳转化为Date类型
    Ubuntu14.04+eclipse下cocos2d-x3.0正式版环境的搭建
    hdu 4901 The Romantic Hero(dp)
    scikit-learn:3.4. Model persistence
    桥接模式和NAT模式差别
    JavaScript入门:004—JS凝视的写法和基本运算符
    MySQL 创建用户 与 授权
    【观点见解】解读大数据的5个误区
  • 原文地址:https://www.cnblogs.com/cag2050/p/7597643.html
Copyright © 2011-2022 走看看