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

  • 骁龙675和835差多少(骁龙675cpu有835好吗)

    骁龙675和835差多少(骁龙675cpu有835好吗)

  • 小米8闹钟不响(小米8闹钟不响怎么办)

    小米8闹钟不响(小米8闹钟不响怎么办)

  • 红米k30要不要更新系统

    红米k30要不要更新系统

  • 户户通t01信号中断怎么解决(户户通t01信号中断 信号强度为20%)

    户户通t01信号中断怎么解决(户户通t01信号中断 信号强度为20%)

  • 闲鱼多久确认收货不会冻结(闲鱼几天要确认收货)

    闲鱼多久确认收货不会冻结(闲鱼几天要确认收货)

  • 滴滴打车和滴滴出行有什么区别(滴滴打车和滴滴出行是一个软件吗)

    滴滴打车和滴滴出行有什么区别(滴滴打车和滴滴出行是一个软件吗)

  • 美图秀秀能去掉小视频水印吗(美图秀秀能去掉多余人)

    美图秀秀能去掉小视频水印吗(美图秀秀能去掉多余人)

  • 淘宝黑金会员是什么意思(淘宝黑金卡是什么卡)

    淘宝黑金会员是什么意思(淘宝黑金卡是什么卡)

  • 没拼单成功前怎么退款(没拼单成功怎么申请退款)

    没拼单成功前怎么退款(没拼单成功怎么申请退款)

  • 拼多多关键词突然搜索不到了(拼多多关键词规则)

    拼多多关键词突然搜索不到了(拼多多关键词规则)

  • 一淘集分宝怎么用不了(一淘集分宝怎么用怎么抵扣)

    一淘集分宝怎么用不了(一淘集分宝怎么用怎么抵扣)

  • 手机怎么解决同ip多账号(手机怎么解决同步信息)

    手机怎么解决同ip多账号(手机怎么解决同步信息)

  • 红米note2为什么那么耗电(红米note2为什么那么便宜)

    红米note2为什么那么耗电(红米note2为什么那么便宜)

  • 闲鱼追评为什么不显示(闲鱼追评为什么被删除了)

    闲鱼追评为什么不显示(闲鱼追评为什么被删除了)

  • icloud内存满了会卡吗(icloud内存满了会不会收到邮件)

    icloud内存满了会卡吗(icloud内存满了会不会收到邮件)

  • 待机快捷键按哪个(待机键是什么键)

    待机快捷键按哪个(待机键是什么键)

  • 苹果11有防抖功能吗(苹果11防抖功能在哪里)

    苹果11有防抖功能吗(苹果11防抖功能在哪里)

  • 手机像素不好怎么调整(手机像素不好怎么弄)

    手机像素不好怎么调整(手机像素不好怎么弄)

  • 抖音怎么剪辑自己的音乐(抖音怎么剪辑自己的原声)

    抖音怎么剪辑自己的音乐(抖音怎么剪辑自己的原声)

  • 探探解除匹配能找到吗(探探解除匹配能看到对方活跃时间吗)

    探探解除匹配能找到吗(探探解除匹配能看到对方活跃时间吗)

  • 钉钉截图如何截全屏(钉钉截图如何截屏)

    钉钉截图如何截全屏(钉钉截图如何截屏)

  • 为什么wps不能用qq发送(为什么wps不能用宏)

    为什么wps不能用qq发送(为什么wps不能用宏)

  • 华为p30能反向充电吗(华为p30反向充电选项找不到怎么办)

    华为p30能反向充电吗(华为p30反向充电选项找不到怎么办)

  • 忘记ld和密码怎么找回(忘记ld密码怎么弄)

    忘记ld和密码怎么找回(忘记ld密码怎么弄)

  • 未分配利润转增股本会计处理
  • 营业净利率和总资产净利率的区别
  • 营业执照注销对商标有影响吗
  • 个人独资公司对外如何承担责任
  • 体检费要缴纳个人所得吗?
  • 电子税务局能不能抄税
  • 外贸企业申报出口退税时的会计分录
  • 国家金库是什么税费
  • 未开发票收入交增值税怎么做账?
  • 软件维护费可以出维护人员工资吗?
  • 特许权使用费收入确认分录
  • 营改增后房屋租赁如何纳税
  • 一般纳税人企业所得税计算公式
  • 蓝字发票是什么
  • 企业不动产销售包括哪些
  • 个人公益性捐赠全额还是限额
  • 税控盘离线时限为0
  • 500人的公司财务部几人
  • 企业之间的无偿借贷行为,作为借款方需要缴纳哪些税
  • 处置报废车辆如何缴纳增值税
  • 进项税未抵扣会计分录
  • 电商公司贷款条件
  • 在银行买理财产品
  • win10系统如何卸载ie11
  • linux系统备份整个硬盘的命令
  • 固定资产更新改造支出资本化
  • 借条和欠条的区别 法律效力
  • linux device drivers
  • 代收的税金如何记账
  • 自建房买卖需要缴哪些费用
  • 克拉莫16首
  • 魅族路由器mini说明书
  • 原材料明细账有记税吗
  • 今日元宵节图片
  • framework开发教程
  • javascript核心技术
  • 微软和梅赛德斯奔驰宣布合作
  • 资产处置损益是什么类
  • 沙子产量表格
  • 净资产是资产负债表中的什么
  • 公司申请破产后员工有赔偿吗
  • db2 -952
  • 增值税专用发票的税率是多少啊
  • 发票税率怎么改成3%
  • 发货环节产生的影响
  • 其他应付款付不出去怎么处理好
  • 企业盘亏的原因怎么写
  • 什么单位需要
  • 基层工会经费收入来源包括
  • 合作社财政补助平均量化
  • 代销手续费如何做分录
  • 个人承担社保如何办理
  • 网店会计怎么做账
  • 收到一笔财政局的付款
  • 收到了对方的作业怎么办
  • 存货科目包括哪几类
  • win8.1安装失败
  • Linux虚拟机下mysql 5.7安装配置方法图文教程
  • ubuntu 安装x11
  • ubuntu14.04启动不了
  • mac运行很卡怎么办
  • vi编辑器的使用
  • mac vlc
  • linux系统中命令什么大小写
  • pmropn.exe
  • windows7 cpu使用率高
  • 局域网下访问vue点击无反应
  • win8开始菜单变为win10
  • 动态加载dll错误
  • apktool修改包名
  • jQuery position() 函数详解以及jQuery中position函数的应用
  • python django事务transaction源码分析详解
  • unity3d基本操作
  • shell脚本计算字符串长度
  • 又一枚精彩的弹幕效果jQuery实现
  • Javascript字符串对象函数
  • jquery输出语句
  • 湖南省国家税务总局官网登录入口
  • 税务一体化监督起主导作用的是
  • 南宁税务局进面分数线
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设