位置: IT常识 - 正文

【Vue】Vue中mixins的使用方法及实际项目应用详解(vue.mixin是什么)

编辑:rootadmin
【Vue】Vue中mixins的使用方法及实际项目应用详解 文章目录(1)mixin基础(2)mixin特点1.选项合并2.方法和参数在各组件中不共享(3)mixin与vuex的区别(4)mixin与公共组件的区别(5)项目实践(6)总结(1)mixin基础

推荐整理分享【Vue】Vue中mixins的使用方法及实际项目应用详解(vue.mixin是什么),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:vue里面mixins,vue里面mixins,vue.mixin的使用场景和原理,vue mixs,vue中的mixins,vuejs mixins,vue中的mixin,vue mixs,内容如对您有帮助,希望把文章链接给更多的朋友!

官网解释(Vue2.x):

混入(mixin)提供了一种非常灵活的方式,来分发Vue组件中的可复用功能。一个混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被“混合”进入该组件本身的选项。

如何理解mixins?我们可以将mixins理解成一个数组,数组中有单或多个mixin,mixin的本质就是一个JS对象,它可以有data、created、methods等等vue实例中拥有的所有属性,甚至可以在mixins中再次嵌套mixins。

(2)mixin特点1.选项合并

官网解释(Vue2.x)

当组件和混入对象含有同名选项时,这些选项将以恰当的方式进行‘合并’。 比如,数据对象在内部会进行递归合并,并在发生冲突时以组件数据优先。

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>学习mixins的简单使用</title> <script type="text/javascript" src="../js/vue.js"></script></head><body> <div class="my-app">{{message}}</div> <script type="text/javascript"> const myMixin = { data() { return { message: 'this is mixin message' } }, created() { console.log('mixin created') } } new Vue({ el: ".my-app", mixins: [myMixin], data() { return { message: '简单的vue' } }, created() { console.log(this.message) } }) </script></body></html>

界面: mixins与Vue instance合并时,会将created等钩子函数合并成数组,mixins的钩子优先调用,当data、methods对象健值冲突时,以组件优先。

同名钩子函数将合并为一个数组,因此都将被调用。另外,混入对象的钩子将在组件自身钩子之前调用。

值为对象的选项,例如 methods、components 和 directives,将被合并为同一个对象。两个对象键名冲突时,取组件对象的键值对。

2.方法和参数在各组件中不共享【Vue】Vue中mixins的使用方法及实际项目应用详解(vue.mixin是什么)

简述:对于一个混合对象而言,如果在不同的组件中(以组件1和组件2为例)使用数据,如果组件1对mixin中的值改变,不会影响组件2中引用的mixin的data。 例子:

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>学习mixins的简单使用(1)</title> <script type="text/javascript" src="../js/vue.js"></script></head><body> <div class="my-app">{{message}}</div> <div class="my-app1">{{message}}</div> <script type="text/javascript"> const myMixin = { data() { return { message: 'this is mixin message', age: '18', } }, created() { console.log('mixin created') } } new Vue({ el: ".my-app", mixins: [myMixin], data() { return { message: '简单的vue' } }, created() { this.age++; console.log('第一次引用mixin——————' + this.age)//19 } }) new Vue({ el: ".my-app1", mixins: [myMixin], data() { return { message: '简单的vue' } }, created() { console.log(this.message) console.log('第二次引用mixin——————' + this.age)//18 } }) </script></body></html>

(3)mixin与vuex的区别

vuex: 状态管理 里面定义的变量在每个组件中均可以进行使用和修改,在任一组件中修改此变量的值之后,其他组件中此变量的值也会随之改变。

mixins: 可以定义共用的变量 在每个组件中使用,引入组件之后,各个变量是相互独立的,值的修改在组件中不会相互影响

(4)mixin与公共组件的区别

组件 :在父组件中引入组件,相当于在父组件中给出独立的一片空间来供子组件使用,父子组件中根据props和$emit来互相传值,实际上两者是相互独立的

mixins:在引入组件之后与组件中的对象与方法进行合并,相当于扩展了父组件中的对象和方法,形成了一个新的组件。

(5)项目实践

在vue项目中使用element-ui时,比如在使用Table表格的时候,免不了申明tableData、total、pageSize等一些Table表格、Pagination分页需要的参数。

可以将重复的data和methods写入一个tableMixin中。

export default { data() { return { total: 0, pageNo: 1, pageSize: 10, tableData: [], loading: false } }, created() { this.searchData() }, methods: { // 预申明,防止报错 searchData() {}, handleSizeChange(size) { this.pageSize = size this.searchData() }, handleCurrentChange(page) { this.pageNo = page this.searchData() }, handleSearchData() { this.pageNo = 1 this.searchData() } }}

当需要的时候直接引入即可

import tableMixin from './tableMixin'export default { ...//引入mixins mixins: [tableMixin], methods: { searchData() { ... } }}

我们在组件内会重新申明serchData方法,类似这种methods对象形式的key,如果key相同,组件内的key会覆盖tableMixin中的key。 当然我们还可以在mixins嵌套mixins。

(6)总结

注意一下 vue 中 mixins 的优先级,component > mixins > extends。

我们暂且将 mixins 称作是组件模块化,灵活运用组件模块化,可以将组件内的重复代码提取出来,实现代码复用,也使我们的代码更加清晰,效率也大大提高。

本文链接地址:https://www.jiuchutong.com/zhishi/300881.html 转载请保留说明!

上一篇:ChatGPT助力校招----面试问题分享(四)

下一篇:Win11磁盘分区后怎么恢复到分区前?Win11磁盘分区后在恢复的方法(win11磁盘分区后不显示)

  • 水上游乐设备厂家生产什么产品

    水上游乐设备厂家生产什么产品

  • 全民k歌私信规则(全民k歌私信有限制吗)

    全民k歌私信规则(全民k歌私信有限制吗)

  • 笔记本电脑电源指示灯不亮开机正常(笔记本电脑电源键一闪一闪无法开机)

    笔记本电脑电源指示灯不亮开机正常(笔记本电脑电源键一闪一闪无法开机)

  • 喷墨打印机寿命(喷墨打印机寿命一般几年)

    喷墨打印机寿命(喷墨打印机寿命一般几年)

  • usb type a b c 区别(usb type-a 和type-c有什么区别)

    usb type a b c 区别(usb type-a 和type-c有什么区别)

  • 抖音为什么会自动取消关注(抖音为什么会自动转发视频给好友)

    抖音为什么会自动取消关注(抖音为什么会自动转发视频给好友)

  • 抖音灯牌怎么取消(抖音灯牌怎么取消隐藏)

    抖音灯牌怎么取消(抖音灯牌怎么取消隐藏)

  • qq当前账号存在风险不让注销怎么办(qq当前账号存在异常)

    qq当前账号存在风险不让注销怎么办(qq当前账号存在异常)

  • 微信短信验证无法登录(微信短信验证无法过去怎么办)

    微信短信验证无法登录(微信短信验证无法过去怎么办)

  • 什么可以代替手指触屏(什么可以代替手机触屏笔)

    什么可以代替手指触屏(什么可以代替手机触屏笔)

  • 手机有个hd图标怎么关(手机显示上有个hd)

    手机有个hd图标怎么关(手机显示上有个hd)

  • iphone6电池掉电很快(教你一招iphone6掉电太快如何解决)

    iphone6电池掉电很快(教你一招iphone6掉电太快如何解决)

  • 微信不是群主怎么踢人出群(微信不是群主怎么艾特所有人)

    微信不是群主怎么踢人出群(微信不是群主怎么艾特所有人)

  • 苹果8p有128内存的吗(苹果8p128内存版本是多少)

    苹果8p有128内存的吗(苹果8p128内存版本是多少)

  • oppor11s有nfc功能(oppo r11s有nfc)

    oppor11s有nfc功能(oppo r11s有nfc)

  • 华为系统10.0怎么升级(华为10版本系统怎样)

    华为系统10.0怎么升级(华为10版本系统怎样)

  • 抖音怎么设置夜间模式(抖音怎么设置夜间模式苹果)

    抖音怎么设置夜间模式(抖音怎么设置夜间模式苹果)

  • vue视频如何添加图片(vue怎么在视频中间加入贴纸)

    vue视频如何添加图片(vue怎么在视频中间加入贴纸)

  • 货拉拉退款到账时间(货拉拉显示退款成功,但却没有收到退款)

    货拉拉退款到账时间(货拉拉显示退款成功,但却没有收到退款)

  • 手机怎么把蓝底p成白底(手机怎么把蓝底变成红底)

    手机怎么把蓝底p成白底(手机怎么把蓝底变成红底)

  • soul怎么恢复旧版本(soul最新版本怎么恢复聊天记录)

    soul怎么恢复旧版本(soul最新版本怎么恢复聊天记录)

  • 申诉回执编号怎么获取(申诉回执编号怎么用)

    申诉回执编号怎么获取(申诉回执编号怎么用)

  • 小度1s和小度1c的区别(小度1s和小度x8哪个好)

    小度1s和小度1c的区别(小度1s和小度x8哪个好)

  • 公众平台修改登录邮箱方法(公众号修改登录密码怎么修改)

    公众平台修改登录邮箱方法(公众号修改登录密码怎么修改)

  • ensmix32.exe进程安全吗 ensmix32进程是什么文件产生的

    ensmix32.exe进程安全吗 ensmix32进程是什么文件产生的

  • dat文件转换成excel教程(dat文件转换成wps表格)

    dat文件转换成excel教程(dat文件转换成wps表格)

  • 【MySQL】表的数据处理(mysql表中数据)

    【MySQL】表的数据处理(mysql表中数据)

  • 公司股东向公司借款
  • 高新企业享受税收优惠政策备案怎么申请
  • 个人所得税预扣率10%
  • 期末留抵税额是怎么产生的
  • 收到发票未收到款
  • 免交附加税政策
  • 小微企业季度不超过30万怎么报增值税
  • 生产成本 营业成本 营业费用
  • 南京房产税2021年
  • 定期定额征收适用范围
  • 房产税先征后免会计处理
  • 诊所购药有差价怎么办
  • 代付租金委托书怎么写
  • 非正常损失和非正常损耗的区别
  • 手动添加mac
  • 认证超时什么意思
  • 企业合并的增值税处理
  • php中表单的使用
  • 苹果手机怎么刷机
  • 完税凭证遗失后怎么处理
  • 增值税发票月末怎么账务处理
  • 解决安装后软件icon一圈白边问题
  • 人工智能课程心得体会
  • 餐饮管理公司开发票
  • vue3 hooks实现
  • transformer模型包含哪些结构
  • convert convert
  • nsloopup命令
  • 用现金报销差旅费及增值税怎么做账
  • 百度ai修复照片
  • java--IO流 ☞ 字节流
  • 存货盘亏毁损处理方法
  • 年终奖的个税税率表
  • sql 集合运算符
  • 小规模纳税人购买税控设备
  • mysql大分页优化
  • mysql字符串字段数据类型
  • 小规模纳税人的增值税怎么算
  • 年应税销售额是指纳税人在连续不超过12个月或四个季度
  • 收到所得税退税怎么做账务处理
  • 开出增值税发票确认收入分录?
  • 什么是委托检验报告
  • 销售样品分录
  • 办理外经证后缴税怎么交
  • 补缴以前年度企业所得税如何做账
  • 现金流量表每月要报吗
  • 不抵扣的进项发票需要在电子税务局操作么
  • 快递做账用什么软件
  • 货物运费是否计入成本
  • 小规模什么情况下必须转为一般纳税人
  • 怎样查企业注册地址
  • 加计抵减四项服务是什么?
  • 冲减坏账准备的金额怎么计算
  • 企业要建账需留什么资料
  • ubuntu系统管理
  • macbookpro怎么改系统
  • 魔方优化大师是免费的吗
  • linux修改ulimit立即生效
  • win10 oem key
  • nginx sbin目录
  • win10 屏幕键盘
  • win7网络不能用怎么办
  • windows7手动更新
  • WIN10补丁无法卸载
  • 升级win10系统后安装谷歌打不开
  • perl中\s+
  • django在window部署
  • javascript简明教程
  • andriod 控件
  • iframe隐藏页面内容
  • bitmap压缩到指定尺寸
  • shell数组遍历
  • python-shell
  • JavaScript+html5 canvas实现本地截图教程
  • JQUERY的AJAX请求缓存里的数据问题处理
  • JavaScript中的数据类型
  • 工具的图
  • 苏州税务系统
  • 余杭区税务局地址
  • 江西国家税务局电子税务局官网
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设