zoukankan      html  css  js  c++  java
  • 安装和使用vue-router

    一.提升vue创建项目速度

    • npm安装和vue创建项目解决办法

      • 虽然设置过淘宝镜像npm install-g cnpm --registry=https://registry.npm.taobao.org

      • 但是通过vue init webpack projectName新建项目是和淘宝镜像没关系的,因为vue-cli 用的是 npm 源,所以只要设置 npm 源就行了,可以提升创建速度:

      • npm config set registry https://registry.npm.taobao.org
        

    二.安装Vue-Router

    • 步骤一:安装vue-router

      npm install vue-router --save
      
    • 步骤二:在模块化工程中使用它(因为是一个插件,所以可以通过Vue.use()来安装路由)

      • 第一步:导入路由对象,并且调用Vue.use(VueRouter)

      • 第二步:创建路由实例,并且传入路由映射配置

      • 第三步:在Vue实例挂载创建的路由实例

    三.使用Vue-Router

    • 使用vue-router的步骤:

      • 第一步:创建路由组件

      • 第二步:配置路由映射:组件和路径映射关系

      • 第三步:使用路由:通过< router-link >和< router-view >

    四.router-link 属性

    • to 属性

      • 相当于a标签中的”herf”属性,后面跟跳转链接所用

        <router-link to="/home">Home</router-link>
        <!-- 渲染结果 -->
        <a href="/home">Home</a>
        
    • replace 属性

      • replace在routre-link标签中添加后,页面切换时不会留下历史记录

        <router-link to="/home" replace></router-link>
        
    • tag 属性

      • 具有tag属性的router-link会被渲染成相应的标签

        <router-link to="/home" tag="li">Home</router-link>
        <!-- 渲染结果 -->
        <li>Home</li>
        
    • active-class 属性

      • 这个属性是设置激活链接时class属性,也就是当前页面所有与当前地址所匹配的的链接都会被添加class属性

        <router-link to="/home" active-class="u-link--Active">Home</router-link>
        

        active-class属性的默认值是router-link-active,所以如果没有设置,就会被渲染为这个class

    • 可以在router.Js里面设置

      const router = new VueRouter({
      mode: 'hash',
      linkActiveClass: 'u-link--Active', // 这是链接激活时的class
      })
      
    • exact 属性

      • 开启router-link的严格模式

        <router-link to="/" exact>home</router-link>
        
      • 上面这个标签如果不加exact属性,则会在vue2.leenty.com/article页面下也会被匹配到,
        这却不是我们的本意,在加了这个属性后就会正确的匹配到vue2.leenty.com

    五.认识路由懒加载

    • 官方给出解释:

      • 当打包构建应用时,Javascript包会变得非常大,影响页面加载

      • 如果我们能把不同的路由对应的组件分割成不同的代码块,

        然后当路由被访问的时候才加载对应的组件,这样就更加高效了

    路由懒加载的方式

    • 方式一:结合Vue异步组件与webpack代码

      const index = r => require.ensure([], () => r(require('@/page/index')), 'index')
      
    • 方式二:AMD写法

      const Home = resolve =>require(['../components/page/Home.vue'], resolve)
      
    • 方式三:ES6写法

      const Chat = () => import('@/components/page/Chat.vue')
      
    • 配置完后需要再new Router中使用

      routes: [
          {path:  '/index', component:  Chat}
      ]
      

    六.传递参数的方式

    • 传递参数主要有两种类型:params和query

    • params的类型

      • 配置路由的格式:/router/:id
      • 传递的方式:在path后面跟上对应的值
      • 传递后形成的路径:/router/123,/router/abc
    • query的类型

      • 配置路由格式:/router,也就是普通配置
      • 传递的方式:对象中使用query的key作为传递方式
      • 传递后形成的路径:/router?id=123,/router?id=abc
  • 相关阅读:
    javascript 基本数据类型
    数据库管理小工具帮助
    CSS3实现32种基本图形
    面试题2:替换空格
    面试题1:二维数组中查找
    图的深度优先和广度优先搜索算法
    Spring+Maven+Dubbo+MyBatis+Linner+Handlebars—Web开发环境搭建
    Spring学习笔记—最小化Spring XML配置
    Spring学习笔记—装配Bean
    Spring学习笔记—Spring之旅
  • 原文地址:https://www.cnblogs.com/Bc01/p/14328272.html
Copyright © 2011-2022 走看看