动态组件、组件缓存

动态组件

通过改变值,和is属性 显示相应的组件

<body>
  <div id="app">
    <select name="" id="" v-model = "val">
      <option value="father"> father </option>
      <option value="son"> son </option>
    </select>
    <component :is = "val"></component>
  </div>
</body>
<script src="../../../lib/vue.js"></script>
<script>
  Vue.component('Father',{
    template: '<div> father </div>'
  })
  Vue.component('Son',{
    template: '<div> son </div>'
  })
  new Vue({
    el: '#app',
    data: {
      val: 'father'
    }
  })
</script>

组件缓存

keep-alive组件可以实现组件的缓存,让组件的切换能够更快 
keep-alive会激活连个钩子函数  activated   deactivated 
activated 激活,正在显示的
deactivated keep-alive被停用
<body>
  <div id="app">
    <select name="" id="" v-model = "val">
      <option value="Father"> father </option>
      <option value="Son"> son </option>
    </select>
    <keep-alive :include = "val">
      <component :is = "val"></component>
    </keep-alive>
  </div>
</body>
<script src="../../../lib/vue.js"></script>
<script>
  /* !keep-alive组件可以实现组件的缓存,让组件的切换能够更快 
    keep-alive会激活连个钩子函数  activated   deactivated 
      activated 激活,正在显示的
      deactivated keep-alive被停用
  */

  Vue.component('Father',{
    template: '<div> father </div>',
    activated () {
      /* !keep-alive组件专用 */
      console.log('father-activated')
    },
  })
  Vue.component('Son',{
    template: '<div> son </div>',
    activated () {
      /* !keep-alive组件专用 */
      console.log('son-activated')
    },
  })
  new Vue({
    el: '#app',
    data: {
      val: 'Father'
    },
    activated () {
      /* !keep-alive组件专用 */
      console.log('inactived')
    },
    deactivated () {
      /* !keep-alive组件专用 */
      console.log("兵哥: deactivated -> deactivated")
    }
  })
</script>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值