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>