位置: IT常识 - 正文

Vue3:探讨一下mixin

编辑:rootadmin
Vue3:探讨一下mixin 一、Vue2中的mixin1、定义要混入的数据对象// 定义一个 mixin 对象export const myMixin = { created() { this.hello() }, methods: { hello() { console.log('hello from mixin!') } }}2、在需要这些东西的地方去通过mixins获得mixin对象<template> <div> <h1>我是页面1</h1> <h2>hello:{{ hello }}</h2> </div></template><script>import { myMixin } from '@/mixin/test1.js'export default { mixins: [myMixin],}</script><style></style>3、解决的问题(说作用可能更准确点)

推荐整理分享Vue3:探讨一下mixin,希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:,内容如对您有帮助,希望把文章链接给更多的朋友!

vue2.x中,mixin是将部分组件逻辑抽象成可重用块的工具,也就是重要的“复用”

4、存在的问题

mixin很容易发生冲突:因为mixin中的property都被合并到了一个组件中,同名的会被覆盖,需要了解每一个选项默认的合并特性

数据来源不明确:如果你引入了多个mixin对象,那你想要知道其中一个具体方法、属性等的来源无疑是很难查找的

可重用性有限:我们只能被动的使用mixin中传递的任何东西,而不能通过参数传递的方式来改变其中的某些逻辑,这大大降低了它抽象逻辑方面的灵活性

5、vue2中mixin详解

请参考:Vue混入mixin_你吃香蕉吗?的博客-CSDN博客

二、Vue3中有mixin吗?需要mixin吗?1、结论:vue3中没有mixin,也不需要mixin2、vue3中没有mixin?

如果大家在这之前看过vue3的官方文档,那么大家就会发现,在vue3的文档中提到mixin的地方极少无比,所能找到的地方也只是在说vue2的一些写法之类的,那既然没写mixin,大概率就在vue3中没有mixin了,接下来我们会肯定它没有mixin。

Vue3:探讨一下mixin

官方很重要的一段话:为了解决Vue2存在的问题,我们添加了一种通过逻辑关注点组织代码的新方法:组合式 API。

3、vue3不需要mixin?

vue3相比较vue2来说,它更加的接近函数式编程,说白了就是写js,用写js的方式方法来写页面

提到这里我想大家应该能够想到一个关键词:公共

而上面所说也就是组合式API——Composition API

在Composition API中,我们可以抽离出每一个逻辑点为单独的js文件,再通过import的方式去把页面的所有内容组合在一起,实现一个完整的页面。

同样的,如果多个页面、组件,用到的方法、变量都是同样的,那么我们可以把这一个js文件同时引入到多个文件中,然后再进行使用,这也就达到了mixin的效果,甚至我们可以通过接受参数的方式对公共的方法作出定制化处理

三、Vue3中“Mixin”的实践1、目录结构

 2、index.vue<template> <A></A> <B></B></template><script setup lang="ts">import A from './A.vue'import B from './B.vue'</script>3、homeMixin.tsexport default function getHomeMixin(source: string) {let name = ref<string>('张三');const componentName = sourceconst handleChangeName = (transmitName: string) => {name.value = transmitName}return {name,componentName,handleChangeName}}4、A、B组件

A组件

<template> <div class="A"> <p>A组件</p> <p>minxin:{{ Mixin.name }}</p> <p>{{ Mixin.componentName }}</p> <el-button @click="Mixin.handleChangeName('法外狂徒-张三')">A组件改变mixin中得到的数据</el-button> </div></template><script setup lang="ts">import getHomeMixin from './homeMixin'const Mixin = getHomeMixin('我是A组件传的值');</script><style lang="less" scoped>.A { width: 300px; height: 300px; background-color: aquamarine;}</style>

B组件

<template> <div class="B"> <p>B组件</p> <p>minxin:{{ Mixin.name }}</p> <p>{{ Mixin.componentName }}</p> <el-button @click="Mixin.handleChangeName('尼古拉斯-赵四')">B组件改变mixin中得到的数据</el-button> </div></template><script setup lang="ts">import getHomeMixin from './homeMixin'const Mixin = getHomeMixin('我是B组件传的值');</script><style lang="less" scoped>.B { width: 300px; height: 300px; background-color: burlywood;}</style>5、效果

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

上一篇:vue3的ref,reactive的使用和原理解析

下一篇:使用SpringBoot一小时快速搭建一个简单后台管理(增删改查)(超详细教程)(springboot用法)

  • 内容重要还是营销重要?(内容重要还是形式重要名言)

    内容重要还是营销重要?(内容重要还是形式重要名言)

  • 希沃白板蒙层怎么添加(希沃白板蒙层怎么添加覆盖文字)

    希沃白板蒙层怎么添加(希沃白板蒙层怎么添加覆盖文字)

  • qq怎么提现到微信红包(qq怎么提现到微信)

    qq怎么提现到微信红包(qq怎么提现到微信)

  • 微信能不能发闪照吗(微信能不能发闪动的字)

    微信能不能发闪照吗(微信能不能发闪动的字)

  • 爱奇艺横屏看不到字幕(爱奇艺横屏看不了怎么回事)

    爱奇艺横屏看不到字幕(爱奇艺横屏看不了怎么回事)

  • 钉钉视频会议共享屏幕没有声音(钉钉视频会议共享后怎么能看见学生)

    钉钉视频会议共享屏幕没有声音(钉钉视频会议共享后怎么能看见学生)

  • 华为nova6怎么调成彩色(华为nova6怎么调时间)

    华为nova6怎么调成彩色(华为nova6怎么调时间)

  • QQ手机版怎样看被删除的好友(QQ手机版怎样看Q龄)

    QQ手机版怎样看被删除的好友(QQ手机版怎样看Q龄)

  • 手机4g网络突然用不了(手机4g网络突然变成2g网络怎么回事)

    手机4g网络突然用不了(手机4g网络突然变成2g网络怎么回事)

  • 淘宝收货后还能退货吗(淘宝收货后还能换吗)

    淘宝收货后还能退货吗(淘宝收货后还能换吗)

  • vivox21屏幕多大(vivo x21屏幕多大)

    vivox21屏幕多大(vivo x21屏幕多大)

  • 二手硬盘能用吗(二手硬盘能用吗现在)

    二手硬盘能用吗(二手硬盘能用吗现在)

  • 如何更改工作簿的名称(如何更改工作簿名称颜色)

    如何更改工作簿的名称(如何更改工作簿名称颜色)

  • 淘宝人生里的人物怎么去掉眼镜(淘宝人生里人生旅行日志如何删除)

    淘宝人生里的人物怎么去掉眼镜(淘宝人生里人生旅行日志如何删除)

  • 分辨率300dpi是什么意思(分辨率300dpi是什么尺寸)

    分辨率300dpi是什么意思(分辨率300dpi是什么尺寸)

  • 摄像头能看到多远距离(摄像头能看到多远)

    摄像头能看到多远距离(摄像头能看到多远)

  • 华为畅享10plus防水吗(华为畅享10plus防误触模式怎么解)

    华为畅享10plus防水吗(华为畅享10plus防误触模式怎么解)

  • 处理器的速度用什么来表述(处理器的速度用什么测量)

    处理器的速度用什么来表述(处理器的速度用什么测量)

  • 照片大小怎么改到20kb(照片大小怎么改到1m)

    照片大小怎么改到20kb(照片大小怎么改到1m)

  • 小爱同学是什么手机的语音助手

    小爱同学是什么手机的语音助手

  • 微信删除的文件在哪里(如何恢复删除的微信文件)

    微信删除的文件在哪里(如何恢复删除的微信文件)

  • 红袖怎么删除订阅(红袖怎么删社区帖子)

    红袖怎么删除订阅(红袖怎么删社区帖子)

  • qq音乐可以同时登陆几个

    qq音乐可以同时登陆几个

  • 如何在手机上制作图片视频(如何在手机上制作ppt课件)

    如何在手机上制作图片视频(如何在手机上制作ppt课件)

  • 滴滴用户评价怎么评(滴滴司机的评价在哪里)

    滴滴用户评价怎么评(滴滴司机的评价在哪里)

  • JS函数的4种调用方式(js函数怎么调用)

    JS函数的4种调用方式(js函数怎么调用)

  • vue3.0中setup使用(两种用法)(vue set up)

    vue3.0中setup使用(两种用法)(vue set up)

  • 没有固定金额的合同叫什么合同
  • 海关完税价格计算公式
  • 什么是抄税清卡业务
  • 在外地预缴的印花税如何扣除
  • 企业所得税应纳税额
  • 收到税务局税收返还
  • 出口支付给境外的佣金
  • 企业所得税免税项目
  • 销项负数发票怎么做账
  • 融资租赁和经营租赁的特点
  • 办公室购买水果做会计分录
  • 原材料供销合同和电子汇划收款回单金额不一样
  • 上个月普通发票怎么作废
  • 建安企业企业所得税核定
  • 其他应付款冲应收账款
  • 调整跨期收入是否调增值税
  • 个税手续费退还时间
  • 技术服务费普通发票怎么做账务处理
  • 7.1发票没有税号怎么开
  • 城市建设维护税是什么意思
  • 租房时,怎么替房东缴税?
  • 建筑材料增值税税率
  • 购入的汽车怎么入账
  • 人工成本如何申报个税
  • 企业劳务费用怎么处理
  • 其他应付款包括应付职工薪酬吗
  • bios里面怎么设置中文
  • 调制解调器报告了一个错误怎么弄
  • 小米无线路由器internet黄灯
  • 怎么关闭磁贴模式
  • 分期付款购买的商品
  • elementuiicon
  • 银行罚息计入什么会计科目
  • jar启动指定启动类
  • thinkphp where or
  • 请假扣款怎么做账
  • 出口退税管理类别四类
  • 技术服务行业增值税税税负率是多少
  • 购买办公用品没有合同缴纳印花税吗
  • 采购的技术服务费需入库吗
  • 应收账款计提坏账准备方法
  • 公司注销剩余的发票怎么作废
  • css隐藏元素的方式
  • 开专票一定要写明细吗
  • 小规模企业免征增值税如何申报
  • 工会经费会计分录最新
  • 补交以前年度企业所得税怎么入账
  • 工程项目立项前的安全评估
  • 主营业务收入主要反映企业销售商品或劳务获得的收入
  • 母子公司之间的借款
  • 收到总公司拨款怎么入账
  • 贷款损失准备核销
  • 支付货款订金入什么科目
  • 余利宝和余额宝哪一个安全
  • 工资及福利费科目
  • 错帐的查找方法
  • 材料运费计入什么科目
  • 如何设置win10自动登录
  • linux find -a
  • spmgr.exe - spmgr是什么进程 有什么用
  • win8系统怎么关掉开机密码
  • windows英文字体
  • player文件怎么打开
  • win8 自动登录
  • win10系统打开任务管理器的快捷键
  • javascript数组的方法
  • 创建ubuntu
  • perl的chomp
  • U3DPlayer UnityWebPlayer动态改变src
  • shell脚本获取文件指定内容
  • Unity3D NGUI UIInput制作输入框屏蔽特殊字符(只允许输入正整数)
  • js设置图片边框
  • javascript教程完整版
  • android 字体设置
  • json对象结构中,关键字key必须为什么类型
  • javascript教程chm
  • 房产原值包括哪些内容
  • 海珠税务局许丰
  • 保险发票不包含哪些
  • 租赁费的税率是多少小规模纳税人
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设