路由的拓展(路由 激活/缓存/动画/数据预载/懒加载)

  1. 路由激活
    • A: 自己书写一个类名或是使用第三方给的类名
    • B:在router-link组件身上添加一个 (类名-class) 的属性
<router-link to = "/home" active-class = "active"/>
  1. 路由的缓存
  • 在router-link组件上添加一个属性 keep-alive
   <router-link to = "/home" keep-alive></router-link>
  1. 路由的动画
    • A:先安装 animate.css 可以模块化引入 yarn add animate.css

    • B: 在main.js中引入 import 'animate.css'(这是全局的引入,也可以在你需要的组件中引入)

    • C:将router-view 组件用transition组件包裹

    • D: 在transition组件身上添加 enter-active-classleave-active-class

      1. 路由激活  
      
    • A: 自己书写一个类名或是使用第三方给的类名

    • B:在router-link组件身上添加一个 (类名-class) 的属性

<router-link to = "/home" active-class = "active"/>
  1. 路由的缓存
  • 在router-link组件上添加一个属性 keep-alive
   <router-link to = "/home" keep-alive></router-link>
  1. 路由的动画
    • A:先安装 animate.css 可以模块化引入 yarn add animate.css
    • B: 在main.js中引入 import 'animate.css'(这是全局的引入,也可以在你需要的组件中引入)
    • C:将router-view 组件用transition组件包裹
    • D: 在transition组件身上添加 enter-active-classleave-active-class
 		<transition
            enter-active-class="animated slideInLeft"        
            leave-active-class="animated slideOutLeft" 
            mode="out-in"  
            name = "router"     
          >
          	<router-view></router-view>
         </transition>
  1. 路由的数据预载(导航完成前获取数据)
    • 核心
      1. next( vm => { Vue.set(vm.dataAttr,key,value) })
      2. next( vm => { vm.setDate(vm.dataAttr,value )})
    • 以上两个方法的区别是
      • 第一种方法
	 next(vm => { //vm指的就是组件
	          const result = JSON.parse(res.data)
	          vm.$set(vm.data,'category',result)
	        })
	        //data中数据要这样定义(用对象)
	        data () {
	          return {
	            data: {
	              category: null
	            }
	          }
	        }
 	- 第二种方法( 官网 )
	  next(vm => vm.setData(vm.dataAttr, value))
	
	          data () {
	            return {
	              category: null
	            }
	          }
  1. 路由的懒加载
    1. 概念: 指的是,对应的路由加载对应的路由组件—按需加载路由
    2. Vue异步组件
    3. webpack的代码分割
		const routerLayLoad = ( comName ) => {
			        return () => {
			          import (/* webpackChunkName: "view-[request]" */../components/pages/${view}.vue`)
			        }
			      }
			      const routes = [
			        {
			          path: '/home',
			          component: routerLayLoad('Home')
			        {
			          path: '/mine',
			          component: routerLayLoad('Mine')
			       }
			   ] 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值