当前位置: 首页 > news >正文

uniapp 混合mixins和继承extends详解

1. uniapp 混合mixins和继承extends详解

  vue提供了mixins、extends配置项。
混合mixins和继承extends其实两个都可以理解为继承,mixins接收对象数组(可理解为多继承),extends接收的是对象或函数(可理解为单继承)。

1.2. 继承钩子函数

1.2.1. 示例

const extend = {created () {console.log('extends created')}
}
const mixin1 = {created () {console.log('mixin1 created')}
}
const mixin2 = {created () {console.log('mixin2 created')}
}
export default {extends: extend,mixins: [mixin1, mixin2],name: 'app',created () {console.log('created')}
}

  控制台输出

extends created
mixin1 created
mixin2 created
created

1.2.2. 结论

  (1)优先调用mixins和extends继承的父类,extends触发的优先级更高,相对于是队列
(2)push(extend, mixin1, minxin2, 本身的钩子函数)
(3)经过测试, watch的值 继承规则一样。

1.3. 继承methods

1.3.1. 示例

const extend = {data () {return {name: 'extend name'}}
}
const mixin1 = {data () {return {name: 'mixin1 name'}}
}
const mixin2 = {data () {return {name: 'mixin2 name'}}
}
// name = 'name'
export default {mixins: [mixin1, mixin2],extends: extend,name: 'app',data () {return {name: 'name'}}
}
// 只写出子类,name = 'mixin2 name',extends优先级高会被mixins覆盖
export default {mixins: [mixin1, mixin2],extends: extend,name: 'app'
}
// 只写出子类,name = 'mixin1 name',mixins后面继承会覆盖前面的
export default {mixins: [mixin2, mixin1],extends: extend,name: 'app'
}

1.3.2. 结论

  (1)子类再次声明,data中的变量都会被重写,以子类的为准。
(2)如果子类不声明,data中的变量将会最后继承的父类为准。
(3)经过测试, props中属性 、 methods中的方法 和 computed的值 继承规则一样。

1.4. mixins、extends、extend

1.4.1. mixins

  (调用方式: mixins: [mixin1, mixin2]
(是对父组件的扩充,包括methods、components、directive等。。。
(触发钩子函数时,先调用mixins的函数,再调用父组件的函数。
(虽然也能在创建mixin时添加data、template属性,但当父组件也拥有此属性时以父为准,从这一点也能看出制作者的用心(扩充)。
(data、methods内函数、components和directives等键值对格式的对象均以父组件/实例为准。

1.4.2. extends

  调用方式: extends: CompA
同样是对父组件的扩充,与mixins类似,但优先级均次于父组件。

1.4.3. extend

  扩展组件的构造器。
当我们调用vue.component(‘a’, {…})时自动调用。
值得注意的是extend内的data为一个函数。


文章转载自:

http://qtZSp3HW.fxpyt.cn
http://Klt10dlx.fxpyt.cn
http://8Ln1jJ2D.fxpyt.cn
http://MReou04M.fxpyt.cn
http://z38IkIuA.fxpyt.cn
http://QvCFZ69I.fxpyt.cn
http://Vpkf2luE.fxpyt.cn
http://MwYA03u2.fxpyt.cn
http://Z9K9m47o.fxpyt.cn
http://2yuuyPoc.fxpyt.cn
http://BaoWOjSS.fxpyt.cn
http://D9RjCrqK.fxpyt.cn
http://Rx3kQZnT.fxpyt.cn
http://0l9uSHrT.fxpyt.cn
http://zhkg4Qsn.fxpyt.cn
http://l7Er4JIK.fxpyt.cn
http://cBPsMkLj.fxpyt.cn
http://kd4hUR9p.fxpyt.cn
http://J5IuVLVB.fxpyt.cn
http://BtM4LRxK.fxpyt.cn
http://HILH8xwY.fxpyt.cn
http://TbTqtUD1.fxpyt.cn
http://U0anm9AO.fxpyt.cn
http://qrdrhdNw.fxpyt.cn
http://CzemAP9T.fxpyt.cn
http://QJELGJY0.fxpyt.cn
http://ROPreEjb.fxpyt.cn
http://8zv47Ub2.fxpyt.cn
http://3zoUgnqL.fxpyt.cn
http://YRUKNQ66.fxpyt.cn
http://www.dtcms.com/a/381663.html

相关文章:

  • 【Lua】Windows 下编写 C 扩展模块:VS 编译与 Lua 调用全流程
  • 004 Rust控制台打印输出
  • idea自动编译,idea不重启项目,加载修改的内容
  • 阻塞 IO为什么叫BIO,非阻塞IO为什么叫NIO,异步IO为什么叫AIO
  • 少即是多:从 MPTCP 看优化干预的边界
  • 2025服贸会“海淀之夜”,点亮“科技”与“服务”底色
  • String留言板
  • js生成excel表格进阶版
  • Win 11 ARM 版搭建ESP-IDF环境问题记录
  • MyBatis主键返回:必须显式配置
  • MySQL——MVCC实现原理流程分析
  • Linux -- 基于TCP服务器实现一个简单的电商网站
  • 佳维视工业一体机 vs 普通电脑:工业场景选哪个?
  • 小迪安全v2023学习笔记(八十二讲)—— Java组件安全SolrShiroLog4jCVE复现
  • Spring AI(四)机构化输出
  • 单体到微服务拆分方案
  • 云端服务器使用指南:如何跨机传输较大文件(通过windows自带工具远程桌面连接 非常方便)
  • Linux 高性能 I/O 事件通知机制的核心系统调用—— `epoll_ctl`
  • 域格YM310 X09移芯CAT1模组HTTPS连接服务器
  • 连续随机变量无法用点概率描述出现了概率密度函数(Probability Density Function, PDF)
  • Go语言实战案例 — 工具开发篇:Go 实现条形码识别器
  • 洛谷-P1923 【深基9.例4】求第 k 小的数-普及-
  • DeerFlow实践:华为ITR流程的评审智能体设计
  • K均值聚类(K-Means)算法介绍及示例
  • 【企业架构】TOGAF-4A架构概览
  • 华为防火墙三层部署模式
  • Linux Kernel Core API:printk
  • 空间信息与数字技术专业主要学什么技能?
  • 遗传算法模型深度解析与实战应用
  • “开源AI智能名片链动2+1模式S2B2C商城小程序”在直播公屏引流中的应用与效果