位置: 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的负面评论 (如何合理利用)

  • 小米换机可以换其他手机吗(小米换机可以换到iphone吗)

    小米换机可以换其他手机吗(小米换机可以换到iphone吗)

  • 淘宝购物车怎么扩大200容量(淘宝购物车怎么分享给朋友)

    淘宝购物车怎么扩大200容量(淘宝购物车怎么分享给朋友)

  • 360浏览器收藏夹怎么导出(360浏览器收藏夹在哪个文件夹)

    360浏览器收藏夹怎么导出(360浏览器收藏夹在哪个文件夹)

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

    微信不是群主怎么拉人进群(微信不是群主怎么艾特所有人)

  • 计算机按其性能分为哪五大类(计算机按其性能规模速度和功能等可分为什么)

    计算机按其性能分为哪五大类(计算机按其性能规模速度和功能等可分为什么)

  • iphone11pro max有几种颜色(iphone11pro max有几种内存)

    iphone11pro max有几种颜色(iphone11pro max有几种内存)

  • 腾讯视频自动续费怎么取消(腾讯视频自动续费关闭了怎么还续费)

    腾讯视频自动续费怎么取消(腾讯视频自动续费关闭了怎么还续费)

  • 手机重启后如何恢复数据(手机重启后如何恢复以前的样子)

    手机重启后如何恢复数据(手机重启后如何恢复以前的样子)

  • jeran10是什么型号(jer-an10是什么型号多少钱)

    jeran10是什么型号(jer-an10是什么型号多少钱)

  • 苹果手机微信可以设置夜间模式吗(苹果手机微信可以加密吗怎么设置)

    苹果手机微信可以设置夜间模式吗(苹果手机微信可以加密吗怎么设置)

  • tpguest是什么wifi

    tpguest是什么wifi

  • 找不到漂流瓶怎么回事(漂流瓶没了我们怎么办)

    找不到漂流瓶怎么回事(漂流瓶没了我们怎么办)

  • 下载中ul是什么意思(下载αpp是什么意思)

    下载中ul是什么意思(下载αpp是什么意思)

  • ps颜色模式8位和16位的区别(ps颜色模式8位和6位)

    ps颜色模式8位和16位的区别(ps颜色模式8位和6位)

  • 小米9的双频gps要开吗(小米手机双频gps是什么意思)

    小米9的双频gps要开吗(小米手机双频gps是什么意思)

  • 米家智能摄像机云台版怎么连接(米家智能摄像机怎么连接)

    米家智能摄像机云台版怎么连接(米家智能摄像机怎么连接)

  • 淘宝店怎么上传图片(淘宝店怎么上传资质)

    淘宝店怎么上传图片(淘宝店怎么上传资质)

  • 抖音的浏览量自己看算不算(抖音浏览量自己看很多,别人看很少)

    抖音的浏览量自己看算不算(抖音浏览量自己看很多,别人看很少)

  • qq音乐访问记录删了别人能看到吗(qq音乐访问记录只留最新一次)

    qq音乐访问记录删了别人能看到吗(qq音乐访问记录只留最新一次)

  • 拼多多不能加购物车吗(拼多多不能加购物车一起支付吗)

    拼多多不能加购物车吗(拼多多不能加购物车一起支付吗)

  • 黑马程序员前端学习接口变更(黑马程序员前端工程师简历)

    黑马程序员前端学习接口变更(黑马程序员前端工程师简历)

  • 进项税额转出补交税款
  • 货币资金应计入什么科目
  • 小规模企业能否抵扣
  • etc怎么取过路费啊
  • 装水表财务是什么费用
  • 项目转包是什么意思
  • 结转完工产品生产成本会计科目
  • 金蝶k3审核过账在哪里
  • 房地产公司扣减土地出让金怎么入账?
  • 企业借个人款该交税吗
  • 企业所得税减免税额包括哪些
  • 个体工商户季度不超过30万免增值税吗
  • 发生破损
  • 研发费用没做账怎么调账
  • 个体户网上报税流程视频
  • 怎么确认权益性投资收益收入?
  • 银行承兑汇票企业账户没钱
  • 先开票后预缴能退吗
  • 公司购买房屋涉税问题
  • 以土地入股需要开发票吗
  • 税票认证节假日可以顺延吗?
  • 租金怎么来计算个税
  • 附加税要先计提再支付吗
  • 公司给员工的油费补贴以什么为依据入账
  • video标签自动播放可以带声音吗
  • Win10无法访问局域网计算机
  • 在建工程完工后结转会计分录
  • 如何处理收到的短信
  • 债券投资账务处理例题
  • 工程施工暂估的成本的依据
  • 增值税跟企业所得税的关系
  • 大家在抢红包怎么回复
  • php $_files
  • php开发过程遇到的难题
  • 权益的定义特征
  • 期末未缴税额是负数,本月申报为什么没有抵扣
  • 竣工结算审计费用在线计算器
  • java继承的基本概念
  • java单点登录token
  • AttributeError: cannot assign module before Module.__init__() call
  • 功能强大的php发展趋势
  • 注意!PHP 7中不要做的10件事
  • sysctl命令配置主机名
  • php hash_hmac
  • 小规模季报附加税怎么报
  • phpcms模板下载
  • 加工企业的税怎么算
  • 免征企业所得税的有哪些行业
  • 关联方交易金额达到多少算转移定价
  • 信息科技领域的违法犯罪行为
  • 收到加工费怎么做账务处理分录
  • 建筑业简易征收的条件
  • 机关单位工会经费提取比例
  • 教育局可以接受捐赠吗
  • 差旅费出差补助标准
  • 冲减上年度多计提所得税
  • 现金进货账务处理
  • 招标代理服务费应该由谁支付
  • 年度计提资产减值准备 好还是坏
  • 餐饮服务的监管由哪个部门负责
  • 微软官方操作系统叫什么
  • u盘启动pe工具
  • cmos是一种什么芯片
  • linux 修复系统
  • 笔记本w8系统怎么取消开机密码
  • win10任务栏电源图标打不开
  • Win10 Mobile RS1预览版14267.1004 修复Lumia 550充电问题
  • 浅谈一下新冠的好处
  • bootstraptable教程
  • 关于shell的说法,不正确的是
  • How to embed a jframe in an eclipse view
  • cmd命令基础
  • 利用python读取文件
  • 3行程序搞定SVM分类-用JAVA程序调用LibSVM API 最简单的示例
  • javascript module
  • python连接mysql实例分享
  • python函数参数的传递方法
  • 江苏省国家税务总局江苏省电子税务局
  • 领导班子和领导干部评议意见表
  • 南通地税电话号码
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设