vue组件模板继承(Vue组件的继承用法)
导读:Vue组件的继承用法 点击打开视频讲解...
Vue组件的继承用法
点击打开视频讲解
vue组件的继承适用于UI几乎一样 ,只是数据不一样的情况下 ,但是这种情况通过统一封装组件也是能实现的 ,小功能建议用封装 ,大功能建议用组件继承 ,因为大功能在结合搜参数的需要多重的判断 ,这样会导致封装的组件比较繁杂 ,出现过多的判断 ,用继承可以改写基类中的方法和数据
基类案例:
<template> <div class="hello"> 父类:{{name}} <span>{{title}}</span> </div> </template> <script> export default { name: HelloWorld, data(){ return{ name:末晨曦吖, title:Vue组件的继承用法 } }, mounted(){ console.log(父组件,this.name); }, methods:{ handle(){ console.log(我是父组件方法); } } } </script> <style scoped> </style>继承基类案例:
<script> import HelloWorld from ./components/HelloWorld.vue export default { name: App, extends:HelloWorld, data(){ return { } }, mounted() { console.log("子类继承父组件name", this.name); this.handle() // this.title = 子组件更改了title }, components:{ }, methods:{ } } </script> <style scoped> </style>效果:
可以看见 ,不改写基类的时候,继承了父类的所有东西 ,当前的data ,dom,方法都继承了
改写父类案例:
<template> <div id="app"> 子组件:{{name}} <span>{{title}}</span> </div> </template> <script> import HelloWorld from ./components/HelloWorld.vue export default { name: App, extends:HelloWorld, data(){ return { } }, mounted() { console.log("子类继承父组件name", this.name); this.handle() this.name = 子组件更改了name this.title = 子组件更改了title }, components:{ }, methods:{ handle(){ console.log(子组件改写方法); } } } </script> <style scoped> </style>效果: 我们会发现 ,改写后基类的值也被覆写了 ,方法也被覆写了,html模板也完全被改写了
HTML模板要么完全继承 ,要么完全重写 ,不能按需继承某个部分 。如果子类在结构上跟基类有所差异 ,还是需要在基类中做条件判断 。如果模板差异太大 ,可以重新定义子类自己的template ,至少还可以重用一部分业务逻辑代码。
创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!