Mixin 提供了一种非常灵活的方式,来分发 Vue 组件中的可复用功能。

// 定义一个mixin object
const myMixin = {created() {this.hello()},methods: {hello() {console.log('hello from mixin!')}}
}// 定义一个app使用这个 mixin
const app = Vue.createApp({mixins: [myMixin]
})app.mount('#mixins-basic') // => "hello from mixin!"

在 Vue 2 中,mixin 是将部分组件逻辑抽象成可重用块的主要工具。但是,他们有几个问题:

  • Mixin 很容易发生冲突:因为每个 mixin 的 property 都被合并到同一个组件中,所以为了避免 property 名冲突,需要了解其他每个特性。

  • 可重用性是有限的:我们不能向 mixin 传递任何参数来改变它的逻辑,这降低了它们在抽象逻辑方面的灵活性。

组合式api:

<template><router-link to="/about">点这里去关于我们页面</router-link><div class="home">这里是一个计数器 >>> <span class="red">{{count}}</span> <br><button @click="countAdd">{{btnText}}</button></div>
</template><script>
// ref 是 vue 3.0 的一个重大变化,其作用为创建响应式的值
import { ref } from 'vue'
// 导出依然是个对象,不过对象中只有一个 setup 函数
export default {setup () {// 定义一个不需要改变的数据const btnText = '点这个按钮上面的数字会变'// 定义一个 count 的响应式数据,并赋值为 0const count = ref(0)// 定义一个函数,修改 count 的值。const countAdd = () => {count.value++}// 导出一些内容给上面的模板区域使用return {btnText,count,countAdd}}
}

组件不用写一堆东西了,只需要一个setup函数即可

ref 这个函数,我们可以从vue中引入它,它传入一个值作为参数,返回一个基于该值的 响应式 Ref 对象,该对象中的值一旦被改变和访问,都会被跟踪到,通过修改cout.value的值,可以触发模板的重新渲染,显示最新的值。

参考:https://cloud.tencent.com/developer/article/1633065

组合式 API如何解决vue2中mixin的局限性?相关推荐

  1. Vue3组合式Api script setup模式中顶层使用await报Top-level ‘await‘ expressions are only allowed when the ‘module‘

    今天练习Vue3的Suspense组件的时候碰到在Vue3组合式Api script setup模式中顶层使用await时报错Eslint错误(能正常编译),错误提示是: Top-level 'awa ...

  2. vuejs中组件的两种不同的编写风格-选项式API及组合式API

    前言 随着vue3的逐渐稳定,以及周边生态的完善,现在vue3已经成为默认的使用方式了的 所以,对于一个前端开发者,Vue2与Vue3都得要会,在vue3中新增很多东西,比如:Fragment,Tel ...

  3. Vue3为什么要使用组合式API——Vue3的组合式API和Vue2的选项式API的优缺点

    Vue3为什么要使用组合式API--Vue3的组合式API和Vue2的选项式API的优缺点 1.Vue2为什么使用选项式API 2.Vue2如何使用组合式API 3.组合式API Vs 选项式API ...

  4. Vue3中的API——选项式API、组合式API

    Vue 的组件可以按两种不同的风格书写:选项式 API 和组合式 API. 对于熟悉Vue2的人来说,选项式api是一个很好的选择,但Vue3提供的组合式api对于代码复用效果更为突出.博主之前是用的 ...

  5. Vue2选项式API和Vue3组合式API的区别

    文章目录 Vue2选项式API和Vue3组合式API的区别 响应式处理 组件生命周期 组件通讯 其他差异 编译器的变化 TypeScript 静态类型提升 Vue2选项式API与Vue3组合式API ...

  6. Vue3.0 组合式 API 分析与实践

    本文带大家深入理解组合式 API 的设计详情,同时加入我们的实践经验总结. 01 背景 Vue3.x 版本的出现带来了许多令人眼前一亮的新特性,其中组合式 API(Composition API),一 ...

  7. vue3组合式api

    文章目录 组合式API介绍 什么是组合式 API? 为什么要有组合式 API? 更好的逻辑复用 更灵活的代码组织 Option Api Option Api的缺陷 Composition Api 更好 ...

  8. 组合式Api 及相关操作用法

    1.概念 组合式 API (Composition API) 是一系列 API 的集合,使我们可以使用函数而不是声明选项的方式书写 Vue 组件. 2.用法 (1)使用组合式API的语法糖 setup ...

  9. Vue3 中使用组合式API替换mixins,实现代码复用并解决隐患

    我们在vue mixin混入–基础中聊过mixins可以使我们的代码进行复用,非常的灵活方便. 但是在vue3中却不推荐使用了,因为它存在一些问题. mixins问题 不清晰的数据来源:当使用了多个 ...

最新文章

  1. python里什么叫子图_Python 如何构建多个子图表
  2. linux Makefile 中使用 shell命令
  3. UVA11174村民排队问题
  4. 取得成本中心组、成本要素组层级的几个BAPI
  5. ssh远程登录执行shell脚本,找不到jps
  6. 如何让listView加入的HeaderView不可点击【转】
  7. Python 程序和 C 程序的整合
  8. 基于ZYNQ FPGA实现数据采集与传输系统设计
  9. uniapp 自动播放背景音乐
  10. 双纵坐标的绘图命令_Matplotlib绘图 | 快速定义图表样式的小技巧
  11. git命令的理解与扩展
  12. 八大编程语言之父:爸爸们节日快乐!
  13. Intellij idea 运行 vertx examples
  14. (转)巴菲特的投资智慧--1998年的演讲
  15. secureCRT连接Linux虚拟机
  16. C#昵图素材下载器源码可下我图、包图、千图等(带数据库)
  17. 2015061410 - 推荐知乎周刊
  18. 2020最新xcode打包IPA(完整详细图文详解)
  19. CS5218 DP转HDMI 4K30HZ转换方案
  20. TCGA肿瘤样本基因信息库(一)

热门文章

  1. 服务器显示被登录成功,登录云服务器成功的显示是什么
  2. 分享一下身边朋友自学android开发及找工作的那些事!【不足勿喷】 1
  3. 想知道谁是你的最佳用户?基于Redis实现排行榜周期榜与最近N期榜
  4. 卸载Windows中的集成组件(转)
  5. vmware虚拟机ip地址自动改变解决办法
  6. evernote快捷键
  7. 三年服务百万家居设计师、十万商家,淘宝躺平平台的底气在哪里?
  8. java源代码打包为jar且对于游戏可执行
  9. vue 添加favicon.ico 修改favicon.ico
  10. elementui表格组件动态合并单元格