怎么在vue中实现一个动态子组件

  介绍

这期内容当中小编将会给大家带来有关怎么在vue中实现一个动态子组件,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

vue是什么软件

vue是一套用于构建用户界面的渐进式JavaScript框架,vue与其它大型框架的区别是,使用vue可以自底向上逐层应用,其核心库只关注视图层,方便与第三方库和项目整合,且使用vue可以采用单文件组件和vue生态系统支持的库开发复杂的单页应用。

<强>方式一:局部注册所需组件

& lt; div  id=癳xample"比;   ,& lt; button  @click=癱hange"在切换页面& lt;/button>   ,& lt; component :=癱urrentView"祝辞& lt;/component>   & lt;/div>      & lt; script>   var  home =,{模板:& # 39;& lt; div>我是主页& lt;/div> & # 39;};   var  post =,{模板:& # 39;& lt; div>我是提交页& lt;/div> & # 39;};   var  archive =,{模板:& # 39;& lt; div>我是存档页& lt;/div> & # 39;};   Vue ({new    ,el: & # 39; #示例# 39;   ,组件:{   家,才能   ,,,   档案,才能   },   ,数据:{   指数:0,才能   加勒比海盗才能:[& # 39;回家# 39;& # 39;文章# 39;,& # 39;档案# 39;],   },   ,计算:{   currentView才能(){   ,,,return  this.arr [this.index];   ,,}   },   ,方法:{   改变才能(){   ,,this.index =, (+ + this.index) % 3;   ,,}   ,}   })   & lt;/script>

<强>使用& lt; keep-alive>缓存

<代码> & lt; keep-alive> & lt; transition> & lt; keep-alive>是一个抽象组件:它自身不会渲染一个DOM元素,也不会出现在父组件链中。

基本用法:

& lt; div  id=癳xample"比;   ,& lt; button  @click=癱hange"在切换页面& lt;/button>   ,& lt; keep-alive>   & lt;才能component :=癱urrentView"祝辞& lt;/component>,   ,& lt;/keep-alive>   & lt;/div>

<强>条件判断

如果有多个条件性的子元素,<代码> & lt; keep-alive> & lt; div  id=癳xample"比;   ,& lt; button  @click=癱hange"在切换页面& lt;/button>   ,& lt; keep-alive>   & lt;才能home  v=爸甘?==0“祝辞& lt;/home>   & lt;才能posts  v-else-if=爸甘?==1“祝辞& lt;/posts>   & lt;才能archive  v-else> & lt;/archive>,   ,& lt;/keep-alive>   & lt;/div>      & lt; script>   Vue ({new    ,el: & # 39; #示例# 39;   ,组件:{   回家才能:{模板:“& lt; div>我是主页& lt;/div> "},   文章才能:{模板:“& lt; div>我是提交页& lt;/div> "},   档案才能:{模板:“& lt; div>我是存档页& lt;/div> "},   },   ,数据:{   指数:0,才能   },   ,方法:{   改变才能(){   ,,let  len =,种(这一点。options.components美元). length;   ,,this.index =, (+ + this.index) % len;   ,,}   ,}   })   & lt;/script>

<强>激活和停用

激活和停用在& lt; keep-alive>树内的所有嵌套组件中触发:

& lt; div  id=癳xample"比;   ,& lt; button  @click=癱hange"在切换页面& lt;/button>   ,& lt; keep-alive>   & lt;才能component :=癱urrentView", @pass-data=癵etData"祝辞& lt;/component>,   ,& lt;/keep-alive>   ,& lt; p>{{味精}}& lt;/p>   & lt;/div>      & lt; script>   Vue ({new    ,el: & # 39; #示例# 39;   ,数据:{   指数:0,才能   味精:才能& # 39;& # 39;,,,   加勒比海盗:[才能   ,,,{   ,,,模板:“& lt; div>我是主页& lt;/div>”,   ,,,激活(){   ,,,,,美元发出(& # 39;pass-data& # 39; & # 39;主页被添加& # 39;);   ,,,},   ,,,停用(){   ,,,,,美元发出(& # 39;pass-data& # 39; & # 39;主页被移除& # 39;);   ,,,},,,,,   ,,},   ,,{模板:“& lt; div>我是提交页& lt;/div> "},   ,,{模板:“& lt; div>我是存档页& lt;/div> '}   ,,,   },   ,计算:{   currentView才能(){   ,,,return  this.arr [this.index];   ,,}   },   ,方法:{   改变才能(){   ,,var  len =, this.arr.length;   ,,this.index =, (+ + this.index) %, len;   ,,},   getData(值){才能   ,,this.msg =,价值;   ,,setTimeout(()=祝辞{   ,,,this.msg =, & # 39; & # 39;;   ,,},500)   ,,}   ,}   })   & lt;/script>

怎么在vue中实现一个动态子组件