位置: 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用法)

  • 小米mix4智能充电保护怎么开启(小米mix4智能充电保护作用)

    小米mix4智能充电保护怎么开启(小米mix4智能充电保护作用)

  • 华为nova7se支不支持nfc(华为nova7se支不支持OTG)

    华为nova7se支不支持nfc(华为nova7se支不支持OTG)

  • 苹果xr能用万能遥控吗(苹果xr能用万能钥匙吗)

    苹果xr能用万能遥控吗(苹果xr能用万能钥匙吗)

  • 手机qq投票投错了怎么取消(qq投票过程中不能看结果吗)

    手机qq投票投错了怎么取消(qq投票过程中不能看结果吗)

  • 小米9pro充电不显示极速快充(小米9pro充电充不进去)

    小米9pro充电不显示极速快充(小米9pro充电充不进去)

  • appid验证失败怎么回事(苹果appid验证失败连接服务器时出问题是什么原因)

    appid验证失败怎么回事(苹果appid验证失败连接服务器时出问题是什么原因)

  • 华为保修一年包含哪些(华为保修一年是免费么)

    华为保修一年包含哪些(华为保修一年是免费么)

  • 天猫延迟发货赔付规则(天猫延迟发货赔付规则2021)

    天猫延迟发货赔付规则(天猫延迟发货赔付规则2021)

  • 苹果蓝牙耳机二代怎么辨别真假(苹果蓝牙耳机二代和三代的区别)

    苹果蓝牙耳机二代怎么辨别真假(苹果蓝牙耳机二代和三代的区别)

  • 分享内容生成失败(分享内容生成失败的原因)

    分享内容生成失败(分享内容生成失败的原因)

  • 为什么苹果手机下载不了软件一直要验证(为什么苹果手机充到80%就充不进去了)

    为什么苹果手机下载不了软件一直要验证(为什么苹果手机充到80%就充不进去了)

  • 苹果5s支持4g网络吗(iphone 5s支持4g吗)

    苹果5s支持4g网络吗(iphone 5s支持4g吗)

  • 苹果怎么下载2个微信(苹果怎么下载233乐园正版)

    苹果怎么下载2个微信(苹果怎么下载233乐园正版)

  • 8p充电要多久(8p充电多久能充满)

    8p充电要多久(8p充电多久能充满)

  • 10gb的硬盘是多少字节(10gb硬盘储存容量)

    10gb的硬盘是多少字节(10gb硬盘储存容量)

  • word开始选项卡在哪(Word开始选项卡中有什么)

    word开始选项卡在哪(Word开始选项卡中有什么)

  • 抖音为什么进不去(抖音为什么进不了直播间)

    抖音为什么进不去(抖音为什么进不了直播间)

  • 怎样判断对方真的关机(怎样判断对方真的关机发短信)

    怎样判断对方真的关机(怎样判断对方真的关机发短信)

  • oppo手机怎么还原手机密码(oppo手机怎么还原手机出厂设置)

    oppo手机怎么还原手机密码(oppo手机怎么还原手机出厂设置)

  • 市民卡充值后怎么补登(市民卡充值后怎么查询余额)

    市民卡充值后怎么补登(市民卡充值后怎么查询余额)

  • 能彻底注销全民k歌吗(全民注销账号怎么注销)

    能彻底注销全民k歌吗(全民注销账号怎么注销)

  • 企业app产品推广方式有哪些(公司做app市场推广)

    企业app产品推广方式有哪些(公司做app市场推广)

  • 汽车空调不制冷的原因(汽车空调不制冷的原因有六种)

    汽车空调不制冷的原因(汽车空调不制冷的原因有六种)

  • Vue3-路由跳转专题详细总结(vue路由跳转的三种方法)

    Vue3-路由跳转专题详细总结(vue路由跳转的三种方法)

  • 城建税会计分录怎么写
  • 公司注销章要销毁吗
  • 购进灭火器材怎么入账
  • 跟个人租车可以到税务局开发票吗
  • 固定资产残值怎么处理什么时候处理
  • 空调属于固定资产类别的什么
  • 如何申请办理残疾证
  • 发票抬头不完整能用吗
  • 行政单位资产核算
  • 收到国外提供免费样品怎么入账?
  • 不相关企业之间调拨资产该如何做账务处理?
  • 境外企业分红怎么交税
  • 小规模纳税人从哪里可以看出来
  • 工资薪金支出税收金额怎么算
  • 普通发票企业有用吗
  • 土地的契税和印花税记入什么科目
  • 加计扣除10%进项税账务处理 如何填表
  • 企业支付在哪里
  • 未确认收货可以评价吗
  • 以前年度暂估
  • 营改增项目
  • 安全中心总是弹出来
  • 主板外部接口是用来连接
  • 其他应收款的二级科目有备用金和老板名可以吗?
  • 存量资金上缴国库是哪个文件规定了
  • php与jquery
  • php字符串赋值
  • php ftell
  • php数组函数 菜鸟
  • php生成zip压缩包
  • 公司已开票给客户,但客户未打款怎么办?
  • 本部借给分公司的钱用交印花税吗
  • 购进油漆,用于装饰本企业办公楼
  • 外贸企业退运后的进项税如何处理
  • 跨行政区域是跨省吗
  • 认缴制下实收资本需要验资吗
  • 房屋折旧方法有哪些
  • 二挡起步教程
  • 无偿调出固定资产账面价值为零如何处理
  • 应付职工薪酬怎么冲平
  • 研发费用加计扣除2022政策
  • 销售返利的账务处理购买方
  • python列表的创建和操作
  • 不发工资可以先报警吗
  • 无形资产收益额的具体测算方法有
  • 往来款项的含义
  • 印花税报少了交税了怎么办
  • 血液制品增值税税率
  • 外贸企业 生产企业
  • 小型微利企业认定标准2022年
  • 检测费可以抵扣吗
  • 房地产影响投资和消费,事关民生和发展
  • 标的编制费
  • 货币资金里的其他货币资金
  • 没有发票只有收据可以入账吗
  • 倒卖承兑汇票被判刑
  • 利润表季度申报本月金额却怎么填
  • 分公司需要做税务报道吗
  • fedora设置
  • 使用u盘安装macos
  • 使用组策略可控制什么
  • ati2sgag.exe进程安全吗 ati2sgag进程信息查询
  • win8如何关闭杀毒软件
  • winxp系统如何调整屏幕亮度
  • win 7组策略
  • sf2是什么文件
  • 检查linux是否安装了,可用哪些命令
  • js数组entries
  • javascript原生写法
  • 高通平台工具下载
  • margin使用
  • c#中thread的用法
  • js中的$是什么意思
  • unity3d 依赖注入
  • js点击div改变css样式
  • 网页中实现浏览的快捷键
  • 怎么打印电子社保
  • 供电企业向电厂收取的并网服务费
  • 重庆税务总局发票查询
  • 财税〔2009〕61号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设