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

  • 出售写字楼需要什么手续
  • 税收对国家的影响及地位
  • 出口货物不报关走快递
  • 采购普通发票和专用发票的区别
  • 计提代扣个人工会经费怎么做账
  • 甲方代扣水电费怎么做账
  • 销项负数发票原发票还有用吗?
  • 科目期初余额的录入需要从上级科目开始
  • 清算多交的增值税如何结转做分录?
  • 车间不生产时折旧怎么算
  • 其他综合收益是利润表项目吗
  • 财政授权支付凭证后多久打款
  • 企业所得税税负怎么算
  • 去税务局交的社保能退么
  • 出差补贴是否缴纳个人所得税 北京
  • 一般纳税人所得税率是多少
  • 小规模季度不超过30万元免税会计分录
  • 企业以现金形式支付货款
  • 报废车辆补贴收据怎么写
  • 公司用上年多缴的社保
  • 每月物业费怎么计算公式
  • 个人税收起征点调整
  • 取得的国债利息收入可以抵扣吗
  • 经办人需要承担风险盘锦交通运输破坏营商环境
  • 利润表有盈利能力吗
  • 收到总公司拨款发奖金如何入账
  • 稿费用交个人所得税吗
  • edge浏览器下载安装
  • 或有事项基本确定
  • 预提电费及电费发票到账的会计分录
  • 什么是摊余成本计量的金融资产
  • 工商年报纳税总额包括滞纳金吗
  • 个税中累计住房怎么计算
  • php 文件系统
  • echarts中的legend能被监听吗
  • Visual studio 2019 社区版下载和安装
  • GCN经典论文笔记:Semi-Supervised Classification with Graph Convolutional Networks
  • pgrep命令详解
  • python 虚拟环境
  • mysql的存储
  • 商业流通企业
  • 固定资产的特点不包括
  • 委托境外机构研发
  • mysql复制表语句
  • db2udb
  • 建安企业确认收入的依据
  • 小规模纳税人如何申报增值税
  • 折旧费属于什么总账科目
  • 厂房无偿使用交税吗
  • 哪些情况需要开具无违法犯罪证明
  • 劳动仲裁经济补偿金写多了
  • 企业净利润流量怎么算
  • 出售固定资产计入营业外收入
  • 专门借款本金汇兑差额
  • 以股权入资该怎么办
  • 进项税已认证未缴纳
  • 固定资产变动方式对应科目
  • 股东追加投资怎么算
  • 货款收不回来了怎么做账
  • 公司账户没有钱怎么发工资
  • 工商联络注册
  • 发生以下情况
  • sql server的mdf文件怎么导入数据库
  • 修改windows host文件
  • windows8禁用uac
  • mac怎么复制粘贴文件夹
  • 如何解决笔记本电脑温度过高 蓝屏
  • win7桌面图标变成了lnk
  • centos8查看cpu温度
  • win8.1网络设置
  • win81和win10
  • bat批处理命令大全
  • node 调用c
  • js 小数取整的函数怎么写
  • javascript文本框获得焦点
  • jQuery validate+artdialog+jquery form实现弹出表单思路详解
  • python中的变量和常量ppt
  • 收到税务局发的多条宣传短信
  • 江苏地税局官网网站
  • 太原公安分局有几个
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设