7.Vue_____keep-alive(结合路由)

1、keep-alive这个内置组件,因为会把数据保存到内存中,所以不会销毁组件也不会重新渲染组件
通过路由切换组件得话组件是不会被从新销毁和渲染得

2、因为本身keep-alive可以实现缓存
告诉keep-alive要缓存那个组件中得数据
属性值得值都是正则表达式(匹配得组件数据才会缓存)或字符串(只缓存当前组件中得数据)
include:需要缓存谁
exclude:不缓存谁

3、当使用keep-alive得时候,因为组件是被存放在内存中的,所以不会触发created钩子函数,也就意味着不能再这个钩子函数中获取数据等得一系列操作
这个时候可以使用keep-alive得钩子函数来实现,activated(是再进入这个组件时触发得)和deactivated(是再离开这个组件时触发得)

例:

//父亲
<template> <div id='app'> <div> <router-link to="/">Home</router-link> <router-link to="/about">about</router-link> </div> <keep-alive include="Home"> <router-view></router-view> </keep-alive> </div> </template> <script> export default { name: 'App', } </script>
 //home组件

<template>
    <div>
        我是home
        <input type="text">
    </div>
</template>

<script>
export default {
    name:'Home',
     beforeDestroy () {
         console.log("home 销毁")
     },
       activated () {
          console.log("你来了") 
     },
     deactivated () {
       console.log("nizoule1")
     }
}
</script>
//about组件

<template>
    <div>
        我是abuot
         <input type="text">
    </div>
</template>

<script>

export default {
    name:'About',
      beforeDestroy () {
         console.log("about销毁")
     }
}
</script>

 

posted @ 2020-06-13 23:20  陶智斌  阅读(292)  评论(0编辑  收藏  举报