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

  • 红米k30pro的卡槽位置在哪里(红米k30pro的手机卡在哪里插)

    红米k30pro的卡槽位置在哪里(红米k30pro的手机卡在哪里插)

  • 华为nova6呼吸灯在哪设置(华为nova6呼吸灯在哪里设置)

    华为nova6呼吸灯在哪设置(华为nova6呼吸灯在哪里设置)

  • oppok3屏幕尺寸多大(oppok3屏幕多少厘米)

    oppok3屏幕尺寸多大(oppok3屏幕多少厘米)

  • 佳能CR3怎么打开(佳能eosr的cr3格式怎么打开)

    佳能CR3怎么打开(佳能eosr的cr3格式怎么打开)

  • 拼多多买家申请退货退款但是不退货怎么办(拼多多买家申请假冒品牌仅退款怎么办)

    拼多多买家申请退货退款但是不退货怎么办(拼多多买家申请假冒品牌仅退款怎么办)

  • 拼小圈会自动开启吗(拼小圈开了一分钟又关了,别人能看见我以前买过什么不)

    拼小圈会自动开启吗(拼小圈开了一分钟又关了,别人能看见我以前买过什么不)

  • 笔记本abcd壳怎么分(笔记本的abcd壳)

    笔记本abcd壳怎么分(笔记本的abcd壳)

  • 计算机病毒四大特点(计算机病毒四大功能模型)

    计算机病毒四大特点(计算机病毒四大功能模型)

  • iphone反复重启电量百分之一(iphone频繁重启是什么原因)

    iphone反复重启电量百分之一(iphone频繁重启是什么原因)

  • 打印机lsu错误是什么意思(打印机slu错误是怎么回事)

    打印机lsu错误是什么意思(打印机slu错误是怎么回事)

  • qq什么意思(qqqqqqqqqqq什么意思)

    qq什么意思(qqqqqqqqqqq什么意思)

  • vivox7截屏怎么操作(vivox7怎样截屏)

    vivox7截屏怎么操作(vivox7怎样截屏)

  • iphonex可以升级ios13.3吗(iphonex可以升级ios16吗)

    iphonex可以升级ios13.3吗(iphonex可以升级ios16吗)

  • 老人机设置9个亲情号码(老人机设置9个亲情号码视频教程)

    老人机设置9个亲情号码(老人机设置9个亲情号码视频教程)

  • a1778是无锁的吗(a1779有锁是什么版本)

    a1778是无锁的吗(a1779有锁是什么版本)

  • 在国外可以用支付宝吗(在国外可以用支付宝跟微信吗)

    在国外可以用支付宝吗(在国外可以用支付宝跟微信吗)

  • word文本无法编辑(word文本编辑不了)

    word文本无法编辑(word文本编辑不了)

  • 视频渲染速度和什么有关(视频渲染速度和帧率)

    视频渲染速度和什么有关(视频渲染速度和帧率)

  • 快手推广作品别人知道吗(快手推广作品别人能看到推广两字吗)

    快手推广作品别人知道吗(快手推广作品别人能看到推广两字吗)

  • 为什么别人加我qq没有提示(为什么别人加我微信提示异常,对身份进行验证)

    为什么别人加我qq没有提示(为什么别人加我微信提示异常,对身份进行验证)

  • 海威特i31和i39区别(海威特i30和i39耳机的区别)

    海威特i31和i39区别(海威特i30和i39耳机的区别)

  • qq好友名字旁边有个耳朵(QQ好友名字旁边有一个小耳朵是什么意思)

    qq好友名字旁边有个耳朵(QQ好友名字旁边有一个小耳朵是什么意思)

  • 苹果mac机上安装windows 8系统的方法(图文教程)(在mac上安装ios应用)

    苹果mac机上安装windows 8系统的方法(图文教程)(在mac上安装ios应用)

  • 超过500万需要补税吗
  • 个体摊贩
  • 个人租房缴纳由谁缴纳增值税
  • 境外收入个人所得税抵免限额
  • 预提费用
  • 拍卖行业收取手续费标准
  • 公司向法人借款会计分录
  • 固定资产一次性扣除申报表怎么填
  • 进出口企业需要具备的资质
  • 开票项目与实际项目不符
  • 发票没有纳税人识别号能开吗
  • 企业亏损法定盈亏是什么
  • 对方公司开发票我方未付款如何做分录?
  • 其他应付款转入营业外收入
  • 公司注销时发现很多年前多发了员工的工资
  • 企业注销递延所得税资产怎么处理
  • 房地产预交税金及附加要计提吗
  • 广告媒体类的企业怎么核算成本?
  • 营改增之后还有营业税吗
  • 保安公司开具的发票
  • 沥青混凝土增值税风险
  • 主营业务收入少记跨年怎么办
  • 核定征收的企业利润怎么处理
  • 购货方跨月销项负数发票如何做账?
  • 利用Windows Media将二进制文件转音频
  • 盘盈的资产
  • 个税返还会计政策
  • 最早的操作系统被称为什么操作系统
  • 集团公司收到的上级秘密
  • 鼓励证券投资基金的政策
  • 废旧物资处理怎么入账
  • php防止用户重度登录
  • 研发费用大于收入
  • pythonsorted函数的作用
  • mysql binlog详解
  • sql 列数
  • 使用mysql命令
  • 一般纳税人暂未开具发票
  • 个税申报系统非正常可以改为正常吗?
  • 汇算清缴时资产折旧怎么填
  • 普通的收据可以入账吗
  • 利息收入算什么
  • 个体工商户分配所得
  • 机动车转让后未过户原车主要承担赔偿责任
  • 营改增后进项税额转出
  • 员工报销的话费要缴纳个税吗?
  • 欠钱打官司后利息怎么算
  • 设置包装盒
  • 实现分页功能的多种原理方案
  • 使用SSIS创建同步数据库数据任务的方法
  • sqlserver临时表 效率
  • ubuntu怎么把软件放到桌面
  • centos安装完成后重启进不去
  • vmware workstation虚拟机设置
  • vmware8.0.4
  • xp的兼容模式
  • win7自带拍照功能
  • centos安装yun
  • surveyor.exe - surveyor是什么进程
  • win10系统怎么调整字体大小
  • windows8应用商店用不了
  • win10怎么安装java?win10系统安装java的方法
  • 删除系统桌面
  • 优质安卓应用
  • cmd attribute
  • 什么叫真游戏
  • js canvas绘制图片
  • jquery的checked
  • django环境配置
  • Node.js中的什么模块是用于处理文件和目录的
  • shell脚本 !
  • 使用vs code开发Django
  • dom 和bom
  • 朵朵舞百科
  • 医保可以异地交嘛
  • 国家税务总局公告2022年第9号
  • 山东税务申报如何网上申报
  • 政府无偿划拨土地涉及的税费
  • 国家电子税务总局重庆电子税务局
  • 东风小康和重庆金康
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设