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

  • 申报个人所得税在哪里报
  • 个税退回怎么申请
  • 税负率的计算方法有哪些
  • 上月留抵进项本月抵扣会计分录
  • 小规模纳税人免税会计分录
  • 用友应收账款系统操作
  • 税务报表的利润表
  • 坏账准备和信用账户区别
  • 集团内部资产调拨
  • 单位承担的社保费用计入应付职工薪酬科目吗
  • 化肥发票怎么开
  • 资产负债表项目的编制方法
  • 分配本月工资及福利费会计分录
  • 预付材料购货款计入什么科目
  • 特殊销售业务包括什么
  • 保险赔款个人所得税计算
  • 材料已入库后收货怎么写
  • 外商企业所得税可享受什么优惠政策
  • 建筑业发票可以在备注里加备注么
  • 企业所得税弥补亏损明细表怎么填写
  • 应交税金审计
  • 房地产开发预提费用
  • 资产减值损失列示在利润表哪里
  • 计提个人负担的社会保险费分录
  • 农业大棚卷帘机用什么油
  • macbook怎么压缩视频大小
  • 质押的应收票据怎么做账
  • 使用时间
  • php哪个函数能取得字符串长度
  • 银行代扣的年费怎么退
  • 命令提示符打错了怎么修改
  • linux检测
  • 存货报废会计分录例题
  • 最小的摄像头是多大
  • php教程全集
  • php 密码
  • laravel 自定义guard
  • wordpress小工具开发
  • 税务自查报告范文自查报告怎么写
  • 未达起征点怎么填申报表
  • 外来原始凭证审核内容
  • 测绘费 土地增值税
  • 个人所得税如何缴纳
  • 政府补贴进项税额处理
  • 营业外收入交企业所得税吗
  • 农民专业合作社法
  • 一般纳税人条件要求2020
  • 无法收回的款项
  • 价外费用中的返利是什么
  • 企业的加油卡如何充值
  • 个体户查账征收个人所得税税率
  • 个体工商户法人可以变更吗?
  • 银行利息收入怎么计算
  • 办理股权转让需要多久时间
  • 资产负债表日后非调整事项应当在附注中披露
  • 应收票据及应收账款怎么算
  • 辞退补偿金入什么科目
  • 本期摊余成本
  • mysqlsum查询慢
  • sql中nullif
  • win8系统升级win8.1
  • ubuntu如何读
  • win8快捷方式
  • win8 更改电脑设置
  • win10组策略编辑器没有
  • win8隐藏任务栏怎么恢复
  • ,linux
  • script_tool_for_linux.bash: Linux 环境下的 hosts 一键部署脚本
  • android的handler
  • csh,tcsh,bash,sh等shell的区别
  • 使用struts2+Ajax+jquery验证用户名是否已被注册
  • js easyui
  • 小规模纳税人开专票可以抵扣吗
  • 税务局追缴社保流程及办理期限
  • 电子税务局财务制度备案在哪
  • 绵阳税务局咨询电话
  • ca证书怎么删除
  • 如何做好巡察组组员
  • 地税局面试
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设