前言

其实两者是一个东西,只是叫法不通

而且显然这次是vue抄袭了react

为了对比,我举了两个例子,都用了一套数据

Mock.mock("/getStudent",options=>{
return Mock.mock({
"list|2":[{
id:()=>Random.guid(),
name: ()=>Random.cname(),
age:()=>Random.integer(1,100)
}]
})
})

vue3 组合式函数

定义组合式函数(注意:这种模式只能在vue3组合式api定义的组建下使用,即setup写法组件下使用)

// use-student.js
import axios from "axios";
import { ref } from "@vue/reactivity"; const useStudent = () => {
const student = ref([]);
const syncStudent = async () => {
const res = await axios.get("/getStudent");
student.value = res.data.list;
};
return { student, syncStudent };
};
export default useStudent;

使用

<script setup>
import useStudent from '../composables/use-student';
const { student, syncStudent } = useStudent();
</script> <template>
<div class="home">
{{ JSON.stringify(student) }}
<button @click="syncStudent">测试</button>
</div>
</template>

reac自定义hooks

组合式函数

// use-student.js
import axios from "axios";
import { useState } from "react"; const useStudent = () => {
const [student, setStudent] = useState([]);
const syncStudent = async () => {
const res = await axios.get("/getStudent");
setStudent(res.data.list);
};
return { student, syncStudent };
};
export default useStudent;

使用

import useStudent from './hooks/use-student';

function App() {
const {student, syncStudent} = useStudent();
return (
<div className="App">
{JSON.stringify(student)}
<button onClick={syncStudent}>测试</button>
</div>
);
}
export default App;

对比效果

vue3组合式api 和 react自定义hooks的更多相关文章

  1. vue3组合式API

    vue3组合式API 为什么要用组合式API,我们来看看它是如何解决vue2的局限性的 1.vue2的局限性 当组件内容越来越多,逻辑越来越复杂,可读性就会降低,并且难以维护. vue2组件采用配置式 ...

  2. 解决WebStorm无法正确识别Vue3组合式API的问题

    1 问题描述 Vue3的组合式API无法在WebStorm中正确识别,表现为defineComponent等无法被识别: 2 尝试方案 猜想这种问题的原因是无法正确识别对应的Vue3库,笔者相信Web ...

  3. [Vue]浅谈Vue3组合式API带来的好处以及选项API的坏处

    前言 如果是经验不够多的同志在学习Vue的时候,在最开始会接触到Vue传统的方式(选项式API),后边会接触到Vue3的新方式 -- 组合式API.相信会有不少同志会陷入迷茫,因为我第一次听到新的名词 ...

  4. vue3组合式API介绍

    为什么要使用Composition API? 根据官方的说法,vue3.0的变化包括性能上的改进.更小的 bundle 体积.对 TypeScript 更好的支持.用于处理大规模用例的全新 API,全 ...

  5. Vue3 组合式 API 中获取 DOM 节点的问题

    模板引用 Vue 提供了许多指令让我们可以直接操作组件的模板.但是在某些情况下,我们仍然需要访问底层 DOM 元素.在模板中添加一个特殊的属性ref就可以得到该元素. 访问模板引用 <scrip ...

  6. 第三十五篇:vue3,(组合式api的初步理解)

    好家伙, 来一波核心概念:数据劫持是响应式的核心 1.由set up开始 (1)vue3中的一个新的配置项,值为一个函数. (2)组件中所用的到的:数据,方法,计算属性均要配置在set up中. (3 ...

  7. 一篇文章讲明白vue3的script setup,拥抱组合式API!

    引言 vue3除了Composition API是一个亮点之外,尤大大又给我们带来了一个全新的玩意 -- script setup,对于setup大家相信都不陌生,而对于script setup有些同 ...

  8. composition api和react hooks的对比

    一.  我的走位:   保持中立 1. 各有各的好处,  谁也别说谁 2. 一个东西带来的好处, 相应的副作用肯定也有, 人无完人 二 .  vue3 的composition api 和   rea ...

  9. Vue3笔记(二)了解组合式API的应用与方法

    一.组合式API(Composition API)的介绍 官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html 组 ...

  10. vue3的学习笔记:MVC、Vue3概要、模板、数据绑定、用Vue3 + element ui、react框架实现购物车案例

    一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.Vue是框架而jQuery则是库. 1.2.MVC(Mo ...

随机推荐

  1. java开发中简简单单的全局异常处理

    今天吃饭时,被公司新来的同事问道:"项目controller层里好多都没写try,catch,难道异常不用处理吗?".虽然正吃饭时被打扰,让我很讨厌,但是既然他诚心诚意的问了,本着 ...

  2. HttpRunner使用总结

    1.安装 打开cmd或cmder,输入命令:pip3 install httprunner 安装完成输入命令:hrun -V或hrun -h 检查安装是否成功 2.使用 1)新建test.yaml文件 ...

  3. doctrine 与 mysql 数据类型的详细转换规则。

    doctrine 与 mysql 数据类型的详细转换规则 // mysql -> doctrine array( 'tinyint' => 'boolean', 'smallint' =& ...

  4. php和thinkphp实现页面调转

    1.原生PHP https://www.cnblogs.com/jade640/p/7118565.html 2.thinkPHP跳转方法及重定向 https://blog.csdn.net/Wake ...

  5. 31.3K star!开源免费本地AI神器,一键部署多模态大模型!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 " 完全开源.本地优先的AI解决方案,支持文本/语音/图像/视频生成,消费级硬件即 ...

  6. NOIP集训 P11071 「QMSOI R1」 Distorted Fate 题解

    对本题的评价:有思维含量的线段树好题.曲子好听,曲绘好看,曲师人品好,谱子写得好,鸠好看 题解: P11071 「QMSOI R1」 Distorted Fate 给定一个长度为 \(n\) 的数组 ...

  7. Spring基于注解的IOC配置

    目录 基于注解的IOC配置 1.用于创建对象的注解 2.用于注入数据的 3.用于改变作用范围的 和生命周期相关 基于注解的IOC配置 曾经XML的配置 <bean id="accoun ...

  8. js技术之“向数组添加元素”

    一.js中对于数组[]的操作很常见 下面记录一下js向数组添加元素的方法 const array=[1,2,3]; console.log('原数组:',array); 效果图 二.用push在数组后 ...

  9. 关于思源笔记与docker的部分问题

    关于思源笔记 sevePath与思源 思源从版本1.9.8之后规定必须设置servePath绑定地址,即仅限指定地址访问. 比如,部署的时候设置的--servePath=127.0.0.1:6806, ...

  10. vue之sync

    在 Vue 中,.sync 是一个用于实现双向数据绑定的特殊修饰符.它允许父组件通过一种简洁的方式向子组件传递一个 prop,并在子组件中修改这个 prop 的值,然后将修改后的值反馈回父组件,实现双 ...