动态地绑定到它的 is 特性,可以实现动态组件

Posted 莫笑我胡为

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态地绑定到它的 is 特性,可以实现动态组件相关的知识,希望对你有一定的参考价值。

前面的话

  让多个组件使用同一个挂载点,并动态切换,这就是动态组件。本文将详细介绍Vue动态组件

概述

  通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,可以实现动态组件

<div id="example">
  <button @click="change">切换页面</button>
  <component :is="currentView"></component>
</div>
<script>
var home = {template:‘<div>我是主页</div>‘};
var post = {template:‘<div>我是提交页</div>‘};
var archive = {template:‘<div>我是存档页</div>‘};
new Vue({
  el: ‘#example‘,
  components: {
    home,
    post,
    archive,
  },
  data:{
    index:0,
    arr:[‘home‘,‘post‘,‘archive‘],
  },
  computed:{
    currentView(){
        return this.arr[this.index];
    }
  },
  methods:{
    change(){
      this.index = (++this.index)%3;
    }
  }
})
</script>

也可以直接绑定到组件对象上

<div id="example">
  <button @click="change">切换页面</button>
  <component :is="currentView"></component>
</div>
<script>
new Vue({
  el: ‘#example‘,
  data:{
    index:0,
    arr:[
      {template:`<div>我是主页</div>`},
      {template:`<div>我是提交页</div>`},
      {template:`<div>我是存档页</div>`}
    ],
  },
  computed:{
    currentView(){
        return this.arr[this.index];
    }
  },
  methods:{
    change(){
      this.index = (++this.index)%3;
    }
  }
})
</script>

 

以上是关于动态地绑定到它的 is 特性,可以实现动态组件的主要内容,如果未能解决你的问题,请参考以下文章

vue动态子组件的实现方式

Vue动态组件

15《Vue 入门教程》Vue 动态组件 &amp;amp; keep-alive

vue中的动态组件(component & keep-alive)

189v-bind:is实现动态组件的效果

动态组件 —— 2种方式实现动态组件的切换