直接上步骤:
1.在需要实现效果的页面,将要渲染的子组件导入
导入子组件
2.在template模板中写<component :is='nowTab' keep-alive></component>
这里的组件名看个人习惯,也可以写导入的组件名,如<shiftSetting :is='nowTab' keep-alive></shiftSetting>
自定义属性:is是特性动态绑定子组件 keep-alive将切换出去的组件保留在内存中
nowTab需为导入的子组件名,这个nowTab喜欢取什么名字取什么,看个人喜好
如上
这里的nowTab需要赋值为导入的子组件名,这里我默认为
shiftSetting
3.通过绑定事件更改this.nowTab的值就可以了
上面我使用的是饿了么的导航菜单,绑定的@select事件,这儿就简单了,直接把饿了么框架的index值改成子组件名,然后通过事件改this.nowTab的值就可以了
绑定事件赋值就可以了,这里的key和keyPath请参照饿了么导航菜单的参数说明
4.总结,导入子组件,通过<component :is='nowTab' keep-alive></component>指定组件动态切换渲染的位置,然后通过绑定事件修改nowTab的值就可以了
当然还可以通过<router-link></router-link>和<router-view></router-view>实现,但是如果项目比较大的话,组件拆分更利于开发。
此文章参照 https://www.jb51.net/article/122451.htm,感谢大佬,前端小菜鸡的成长之路~~