Vue.js 动态组件补充

Vue.js官方文档动态组件部分有点模糊,稍作补充。

完善下官方文档提供的例子:

var vm = new Vue({
  el: '#example',
  data: {
    currentView: 'home'
  },
  components: {
    home: { template: '

Welcome Home!

' }, //模板 posts: { template: '

Posts!

' },//模板 } });

  

组件如何动态?区别于Vue.component()注册组件,这里到底显示哪个模板是根据vm.currentview的值定的。例如:

vm.currentview='posts';  //渲染显示:

Posts!

这里没有做缓存,更改p2的innerHTML之后,重新切换模板会恢复模板原来的数据:

$("#p2").html("新内容"); //渲染显示:

新内容

,内容被改变 vm.currentview='home'; //渲染显示:

Welcome Home!

vm.currentview='posts'; //渲染显示:

Posts!

,又重新恢复原始内容

如果希望保持修改后的内容,可以添加一个keep-alive指令参数,修改HTML结构如下:


  
    
  

此时更改p2的innerHTML之后,重新切换模板会保持之前的修改结果。

你可能感兴趣的:(Vue.js 动态组件补充)