vue3-mixins

在开发的过程中我们会遇见相同或者相似的逻辑代码。
可以通过vue的 mixin 功能抽离公共的业务逻辑,
然后通过impor再组件中引入。通过mixins注册进来。
这样我们就可以使用mixin中共同的业务逻辑
我们通常会在src下创建一个文件夹mixins。
然后在创建mixins/index.js文件

index.js

import { ref } from 'vue'
export default function () {
let num = ref(0);
let like = ref(false)
let favBtn = () => {
num.value += 1;
like.value = false
setTimeout(() => {
like.value=true
})
}
// 暴露出去
return {
num,
like,
favBtn
}
}

TestA.vue文件(组件)

<template>
<div class="a">
<h1> 我是A组件 </h1>
<p>数量{{num }}</p>
<el-button @click="favBtn"> {{like ? '收藏过' :'未收藏'}} </el-button>
</div>
</template>
<script setup lang="ts">
import mixins from '../mixins/index.js'
let { num, like, favBtn }=mixins()
</script>

TestB.vue文件(组件)

<template>
<div class="b">
<h1> 我是B 组件 </h1>
<p>数量{{num }}</p>
<el-button @click="favBtn"> {{like ? '收藏过' :'未收藏'}} </el-button>
</div>
</template> <script setup lang="ts">
import mixins from '../mixins/index.js'
let { num, like, favBtn }=mixins()
</script>

使用组件的页面

<template>
<div>
<TestA></TestA>
<TestB></TestB>
</div>
</template>
<script setup lang="ts">
import { reactive, ref,markRaw } from "@vue/reactivity"
import TestA from "../components/TestA.vue"
import TestB from "../components/TestB.vue"
</script>

解释

从上面的图中发现:
在混合mixin中,各个数据彼此是互相独立的。不会互相影响。

vue3中mixins的使用的更多相关文章

  1. vue中mixins的理解及应用

    vue中mixins的理解及应用 vue中提供了一种混合机制--mixins,用来更高效的实现组件内容的复用.最开始我一度认为这个和组件好像没啥区别..后来发现错了.下面我们来看看mixins和普通情 ...

  2. vue中mixins的使用方法和注意点(详)

    mixins基础概况 vue中的解释是这样的,如果觉得语言枯燥的可以自行跳过嘿~ 混入 (mixins): 是一种分发 Vue 组件中可复用功能的非常灵活的方式.混入对象可以包含任意组件选项.当组件使 ...

  3. vue3中使用axios如何去请求数据

    在vue2中一般放在created中,但是在vue3中取消了created生命周期,请求方式有两种 直接在setup中去获取数据 setup(props) { const data = reactiv ...

  4. vue3中watch函数

    watch 监听普通类型 let count = ref(1); const changeCount = () => { count.value+=1 }; watch(count, (newV ...

  5. 端午总结Vue3中computed和watch的使用

    1使用计算属性 computed 实现按钮是否禁用 我们在有些业务场景的时候,需要将按钮禁用. 这个时候,我们需要使用(disabled)属性来实现. disabled的值是true表示禁用.fals ...

  6. vue 3 学习笔记 (七)——vue3 中 computed 新用法

    vue3 中 的 computed 的使用,由于 vue3 兼容 vue2 的选项式API,所以可以直接使用 vue2的写法,这篇文章主要介绍 vue3 中 computed 的新用法,对比 vue2 ...

  7. 在vue3中使用router-link-active遇到的坑

    在使用 router-link-active 设置链接激活时CSS类名时,发现在例如 /member/order 和 /member/order/:id 这两个都包含 /member/order的路由 ...

  8. Vue3中的响应式对象Reactive源码分析

    Vue3中的响应式对象Reactive源码分析 ReactiveEffect.js 中的 trackEffects函数 及 ReactiveEffect类 在Ref随笔中已经介绍,在本文中不做赘述 本 ...

  9. Vue3中插槽(slot)用法汇总

    Vue中的插槽相信使用过Vue的小伙伴或多或少的都用过,但是你是否了解它全部用法呢?本篇文章就为大家带来Vue3中插槽的全部用法来帮助大家查漏补缺. 什么是插槽 简单来说就是子组件中的提供给父组件使用 ...

  10. vue3中defineComponent 的作用

    vue3中,新增了 defineComponent ,它并没有实现任何的逻辑,只是把接收的 Object 直接返回,它的存在是完全让传入的整个对象获得对应的类型,它的存在就是完全为了服务 TypeSc ...

随机推荐

  1. “数”驰天下,华为云DRS 高效支撑T3出行平稳迁移

    摘要:华为云DRS成功助力T3出行在规定时间内完成数十TB级全量数据的迁移. 数字化潮流浩浩汤汤,企业上云如火如荼,网约车行业也借助这一股东风展现出了蓬勃的生命力,因为它的高效便捷,吸引了越来越多的都 ...

  2. Gartner 权威预测未来4年网络安全的8大发展趋势

    翻译:SEAL安全 原文标题: Gartner Unveils the Top Eight Cybersecurity Predictions for 2022-23 原文链接: https://ww ...

  3. 怎么用 Solon 开发基于 undertow jsp tld 的项目?(新)

    Solon 开发 jsp 项目是非常简单的,只要改用 jetty 启动器 或者 undertow 启动器,其它也没特别之处了.此文用 undertow + jsp + tld 这个套路搞一把: 一. ...

  4. SQL SERVER 查询所有表 统计每张表的大小

    (MySQL查看数据库表容量大小)[https://www.cnblogs.com/vipsoft/p/12145059.html] 查询某数据库中的所有数据表 SELECT name as tabl ...

  5. 接口文档 token原理 jwt介绍和原理 drf-jwt快速使用

    目录 昨日回顾 认证 权限 频率 全局异常处理 接口文档 接口文档编写 drf自动生成接口文档 cookies-session-token发展史 jwt介绍和原理 jwt的构成 base64的编码和解 ...

  6. Mysql--JOIN连表查询

    一.Join查询原理 MySQL内部采用了一种叫做 nested loop join(嵌套循环连接)的算法:通过驱动表的结果集作为循环基础数据,然后一条一条的通过该结果集中的数据作为过滤条件到下一个表 ...

  7. GIL 锁或将在 CPython 中成为可选项

    哈喽大家好,我是咸鱼 几天前有媒体报道称,经过多次辩论,Python 指导委员会打算批准通过 PEP 703 提案,让 GIL(全局解释器)锁在 CPython 中成为一个可选项 PEP 703 提案 ...

  8. mysql和redis库存扣减和优化

    前言 大流量情况下的库存是老生常谈的问题了,在这里我整理一下mysql和redis应对扣除库存的方案,采用jmeter进行压测. JMETER设置 库存初始值50,线程数量1000个,1秒以内启动全部 ...

  9. Java 开发手册 (阿里巴巴开发手册)

    Java 开发手册 (有需要pdf版本的私信我,可以邮箱发)0版本号 制定团队 更新日期 备注 1.4.0 阿里巴巴集团技术团队 2018.5.20 增加设计规约(详尽版) 一.编程规约 (一) 命名 ...

  10. vue后台管理系统,接口环境配置

    https://coding.imooc.com/lesson/397.html#mid=31487