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

  • 查账征收纳税申报表
  • 个人卖给公司车需要什么手续
  • 火车票全额抵减增值税可以吗
  • 在公司交社保不满十年,女性按照什么退税
  • 免税项目怎么做账
  • 天然气安装工程施工劳务协议
  • 研发折旧会计分录
  • 非盈利组织的好处
  • 进口的原材料没有发票
  • 企业报销发票都需要什么
  • 互联网合同要交社保吗
  • 开票商品名称是什么意思
  • 卷式发票有税率吗
  • 混合销售行为如何缴纳消费税
  • 其他综合收益影响递延所得税负债吗
  • 车辆租赁的增值税率
  • 企业固定资产损失包括
  • 投标标费退回怎么做分录
  • 现金日记账对方科目是什么意思
  • 攀岗的企业性质有哪些
  • windows 11预览版
  • mac双系统切换键
  • PHP:pg_connection_busy()的用法_PostgreSQL函数
  • 增值税专票跨月但未认证,怎么作废
  • vue 右键菜单
  • 用php做计算
  • 备发工资的会计科目
  • opencv几何变换
  • php execute函数
  • 拿到领料单如何做账
  • 发现以前年度损益调整怎么记账
  • Vue 拖拽排序
  • python多进程间通信
  • 固定资产改扩建和大修理的区别
  • 租金收入怎样缴纳个税
  • 初始化mysql命令
  • 金融商品转让一半增值税
  • 可供出售金融资产名词解释
  • 小微企业的所得税税率是多少
  • 应收账款属于什么会计要素
  • 小规模纳税人国税地税都要交吗
  • 个人所得税汇算年收入不超过12万
  • 高新技术企业如何计算企业所得税
  • 已认证的发票要冲红要退票吗
  • 营改增后增值税增加了什么征收范围
  • 实收资本印花税最新政策2023年
  • 代扣代缴个人所得税手续费返还政策
  • 预付款已经开了发票未到货要怎么做账
  • 工程项目增值税预缴税率
  • 股权转让的会计处理怎么做
  • 企业发生装修费就计入长期待摊费用吗还是
  • 自产产品用于职工食堂,确认收入吗
  • 小规模应收利息怎么算
  • 每个单位都要缴纳五险一金吗
  • 增值税科目设置及科目号
  • MySQL 5.7.14 net start mysql 服务无法启动-“NET HELPMSG 3534” 的奇怪问题
  • 应该怎么消除
  • win 注册表
  • linux磁盘分区表
  • windows 8.1 with update (multiple editions)
  • msworks.exe - msworks是什么进程 有什么用
  • windows怎么右键
  • w8系统文件夹怎么设置密码
  • scrollWidth,clientWidth与offsetWidth的区别
  • 新浪微博 app 安卓
  • python的入门教程
  • NodeJS配置HTTPS服务实例分享
  • unity rpg插件
  • jquery左右选择框
  • python静态函数
  • Android include 标签注意点
  • 22号天蝎座的运势
  • Dalvik VM (DVM) 与Java VM (JVM)之间有哪些区别
  • 查询完毕
  • 甘肃税务局电子发票怎么开
  • 贵州网上税务大厅官网
  • 上海浦东税务局电话 工作时间
  • 国家税务网站官网
  • 公务卡信用等级1级
  • 上市股票转为非上市
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设