1.动态组件
定义
让多个组件使用同一个挂载点,并动态切换,这就是动态组件。
应用场景
通过使用保留的 元素,动态地绑定到它的 is 特性,可以实现动态组件。
它的应用场景往往应用在路由控制或者 tab 切换中。
标签
<component>元素:动态绑定多个组件到它的js属性
<keep-alive>:保留状态,避免重新渲染
2.示例
代码
<div id="app">
<component :is="who"></component>
<footer>
<ul>
<li @click="who='home'">home</li>
<li @click="who='list'">list</li>
<li @click="who='cart'">cart</li>
</ul>
</footer>
</div>
<script>
new Vue({
el: "#app",
data: {
who: "home"
},
components: {
'home': {
template: `<h1>我是首页</h1>`,
},
'list': {
template: `<h1>我是详情页</h1>`,
},
'cart': {
template: `<h1>我是购物车</h1>`,
},
},
});
</script>
结果
3.keep-alive保留状态,避免重新渲染
上例中切换页面是home等组件不是显示和隐藏,而是删除和新建,所以数据不会保留(若有input文本框,切换回来,原先输入的将会消失)
解决:
<keep-alive>
<component :is="who"></component>
</keep-alive>
本文探讨了Vue.js中的动态组件及其应用场景,详细解释了如何通过<component>标签实现组件动态切换,并介绍了keep-alive的作用,即保留组件状态以避免重新渲染。示例代码展示了动态组件的使用方式,同时指出在切换组件时若需保持数据状态,需借助keep-alive来实现。

1086

被折叠的 条评论
为什么被折叠?



