位置: 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磁盘分区后不显示)

  • 盒马自提怎么操作(盒马app自提怎么操作)

    盒马自提怎么操作(盒马app自提怎么操作)

  • 苹果手机怎么将照片设置镜面翻转(苹果手机怎么将数据传到新手机)

    苹果手机怎么将照片设置镜面翻转(苹果手机怎么将数据传到新手机)

  • ppt换片方式在哪里

    ppt换片方式在哪里

  • 华为nova5怎么截屏(华为nova5怎么截长图教程)

    华为nova5怎么截屏(华为nova5怎么截长图教程)

  • ios什么时候支持改微信号(ios什么时候支持多开)

    ios什么时候支持改微信号(ios什么时候支持多开)

  • 第三方卖家仓库是什么意思(京东物流进入第三方卖家仓库)

    第三方卖家仓库是什么意思(京东物流进入第三方卖家仓库)

  • 拼多多没有自然流量的原因(拼多多没有自然流量怎么提升)

    拼多多没有自然流量的原因(拼多多没有自然流量怎么提升)

  • vivox30与vivos6对比(vivox30和s6哪个性价比高)

    vivox30与vivos6对比(vivox30和s6哪个性价比高)

  • 爱奇艺自动续费怎么退回钱(爱奇艺自动续费怎么退款回来)

    爱奇艺自动续费怎么退回钱(爱奇艺自动续费怎么退款回来)

  • 抖音不喜欢的视频怎么删除(抖音不喜欢的视频可以删除吗)

    抖音不喜欢的视频怎么删除(抖音不喜欢的视频可以删除吗)

  • 老年机来电铃声不响(老年机来电铃声怎么设置歌曲)

    老年机来电铃声不响(老年机来电铃声怎么设置歌曲)

  • qq位置共享怎么改位置(qq位置共享怎么设置自己的位置)

    qq位置共享怎么改位置(qq位置共享怎么设置自己的位置)

  • 怎么分享qq聊天记录给好友(怎么分享qq聊天内容)

    怎么分享qq聊天记录给好友(怎么分享qq聊天内容)

  • 华为mate30pro怎么调24小时(华为mate30pro怎么样,值得入手吗)

    华为mate30pro怎么调24小时(华为mate30pro怎么样,值得入手吗)

  • 苹果手机为什么下不了小红书(苹果手机为什么连不上wifi)

    苹果手机为什么下不了小红书(苹果手机为什么连不上wifi)

  • 移动iphone6可用电信卡吗(移动版iphone6可以用联通卡吗)

    移动iphone6可用电信卡吗(移动版iphone6可以用联通卡吗)

  • 故障转移群集中最多包含多少节点(故障转移群集中的每个节点必须独立存储设备)

    故障转移群集中最多包含多少节点(故障转移群集中的每个节点必须独立存储设备)

  • mate30pro和mate30pro5g区别(mate30pro和mate30pro5g手机壳通用吗)

    mate30pro和mate30pro5g区别(mate30pro和mate30pro5g手机壳通用吗)

  • 苹果手机能下载应用宝吗?(苹果手机能下载微信分身吗)

    苹果手机能下载应用宝吗?(苹果手机能下载微信分身吗)

  • 电脑打印快捷键(电脑打印快捷键没反应)

    电脑打印快捷键(电脑打印快捷键没反应)

  • 操作频率过快什么意思(操作频率过快要等多久)

    操作频率过快什么意思(操作频率过快要等多久)

  • word2007怎么添加页眉(word2007怎么添加空白页)

    word2007怎么添加页眉(word2007怎么添加空白页)

  • ps如何去除图片背景(ps如何去除图片上的水印不伤背景)

    ps如何去除图片背景(ps如何去除图片上的水印不伤背景)

  • 手机虚电怎么校准(手机虚电怎么校正OPPO指令)

    手机虚电怎么校准(手机虚电怎么校正OPPO指令)

  • 电脑wps发送文件给微信(电脑wps发送文件到微信日期怎么反了)

    电脑wps发送文件给微信(电脑wps发送文件到微信日期怎么反了)

  • 华为消费者bg成立于哪一年(华为消费者bg在哪个城市)

    华为消费者bg成立于哪一年(华为消费者bg在哪个城市)

  • iphonexsmax支持多少快充(iphonexsmax支持多少瓦无线充电)

    iphonexsmax支持多少快充(iphonexsmax支持多少瓦无线充电)

  • qq音乐怎样增加qq成长值(qq音乐怎么加)

    qq音乐怎样增加qq成长值(qq音乐怎么加)

  • 详述关税的种类和征收方法
  • 小微企业的认定标准2023年
  • 营业执照作废声明怎么撤销
  • 结转结余属于什么科目
  • 进项税额转出是在当月还是回到所属期
  • 职工交的商业保险怎么做账
  • 用友t3年末怎么结转
  • 电信要收取安装费吗
  • 广告公司如何开发快消客户
  • 企业所得税季度申报填写示例
  • 为什么社保账户有钱但是卡里没钱
  • 通行费电子发票可以抵扣吗
  • 一般增值税纳税人和小规模纳税人
  • 出售无形资产的净损失
  • 税务证丢失可以注销吗
  • 空调折旧费用科目
  • 无合同销售收入怎么算
  • 母公司收购少数股东股权,之前的利润母公司不享有
  • 自然灾害造成库存商品毁损
  • 取得增值税专用发票
  • 做企业所得税汇算清缴前需要准备什么资料
  • 商品进销差价进哪个科目
  • 票据遗失情况说明格式及范文
  • 相互调转总分公司的原料物资 是视同销售吗?
  • 残疾人保障金中的工资总额包括福利费用吗
  • 资产和负债可以一增一减吗
  • t3不能增加二级科目
  • 注册了店面没有营业执照
  • 现金流量表怎么做
  • 金银制成的金银币及摆件是否征收消费税?
  • 1697511215
  • 小微企业 记账
  • PHP:eregi_replace()的用法_Regex正则函数
  • 仓储费计入存货成本吗
  • gbdrt
  • 退货的会计处理分录
  • 政府补助可以挂账吗
  • 哪些行业不用缴纳增值税
  • 限售股 缴税
  • 怎么连接php
  • sqlserver附加数据库语句
  • 水利基金的计税税率6
  • 企业所得税汇算清缴扣除标准2023
  • 消费税纳税人的具体纳税期限由主管税务机关
  • 事业单位收到发票怎么处理
  • 资本化期间专门借款利息费用需将
  • 对公支付的款项没有发票怎么报销
  • 收到上年度所得税返还会计分录
  • 事业单位非税收入帐务处理
  • 小规模纳税人营改增税率
  • 流动负债占比低什么意思
  • 公司的软件服务器设置什么意思啊
  • 公司往来借款怎么做账
  • 发票章盖得不清晰怎么办
  • 什么叫社保差额调整
  • win10安装sqlserver2016出错
  • 获取sqlsession
  • ubuntu简单的命令
  • linux系统的
  • centos怎么配置ssh
  • macbook恢复macos
  • Win10 Mobile 10586.71截图曝光 修复已知问题
  • win7系统打不开设备与打印机
  • Cocos2dx3.2 Crazy Tetris 由于遮罩引起的部分手机白屏
  • 批处理删除自身命令
  • unity2d序列帧
  • 猫的游戏视频
  • js根据name取值
  • jquery添加属性的方法
  • jquery.validate使用详解
  • 土地增值税有哪些税收抵扣
  • 云南税务查询系统
  • 法律服务所与律师事务所区别
  • 河南省残疾人个税优惠政策
  • 光伏电站电力监控系统
  • 青岛怎样网上交医保
  • 遵从和尊重
  • tbc法力陵墓入口
  • 会计审计和税务服务属于什么税目
  • 税务局的局长是什么级别
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设