vue3组合式api 和 react自定义hooks
前言
其实两者是一个东西,只是叫法不通
而且显然这次是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的更多相关文章
- vue3组合式API
vue3组合式API 为什么要用组合式API,我们来看看它是如何解决vue2的局限性的 1.vue2的局限性 当组件内容越来越多,逻辑越来越复杂,可读性就会降低,并且难以维护. vue2组件采用配置式 ...
- 解决WebStorm无法正确识别Vue3组合式API的问题
1 问题描述 Vue3的组合式API无法在WebStorm中正确识别,表现为defineComponent等无法被识别: 2 尝试方案 猜想这种问题的原因是无法正确识别对应的Vue3库,笔者相信Web ...
- [Vue]浅谈Vue3组合式API带来的好处以及选项API的坏处
前言 如果是经验不够多的同志在学习Vue的时候,在最开始会接触到Vue传统的方式(选项式API),后边会接触到Vue3的新方式 -- 组合式API.相信会有不少同志会陷入迷茫,因为我第一次听到新的名词 ...
- vue3组合式API介绍
为什么要使用Composition API? 根据官方的说法,vue3.0的变化包括性能上的改进.更小的 bundle 体积.对 TypeScript 更好的支持.用于处理大规模用例的全新 API,全 ...
- Vue3 组合式 API 中获取 DOM 节点的问题
模板引用 Vue 提供了许多指令让我们可以直接操作组件的模板.但是在某些情况下,我们仍然需要访问底层 DOM 元素.在模板中添加一个特殊的属性ref就可以得到该元素. 访问模板引用 <scrip ...
- 第三十五篇:vue3,(组合式api的初步理解)
好家伙, 来一波核心概念:数据劫持是响应式的核心 1.由set up开始 (1)vue3中的一个新的配置项,值为一个函数. (2)组件中所用的到的:数据,方法,计算属性均要配置在set up中. (3 ...
- 一篇文章讲明白vue3的script setup,拥抱组合式API!
引言 vue3除了Composition API是一个亮点之外,尤大大又给我们带来了一个全新的玩意 -- script setup,对于setup大家相信都不陌生,而对于script setup有些同 ...
- composition api和react hooks的对比
一. 我的走位: 保持中立 1. 各有各的好处, 谁也别说谁 2. 一个东西带来的好处, 相应的副作用肯定也有, 人无完人 二 . vue3 的composition api 和 rea ...
- Vue3笔记(二)了解组合式API的应用与方法
一.组合式API(Composition API)的介绍 官方文档: https://v3.cn.vuejs.org/guide/composition-api-introduction.html 组 ...
- vue3的学习笔记:MVC、Vue3概要、模板、数据绑定、用Vue3 + element ui、react框架实现购物车案例
一.前端MVC概要 1.1.库与框架的区别 框架是一个软件的半成品,在全局范围内给了大的约束.库是工具,在单点上给我们提供功能.框架是依赖库的.Vue是框架而jQuery则是库. 1.2.MVC(Mo ...
随机推荐
- java开发中简简单单的全局异常处理
今天吃饭时,被公司新来的同事问道:"项目controller层里好多都没写try,catch,难道异常不用处理吗?".虽然正吃饭时被打扰,让我很讨厌,但是既然他诚心诚意的问了,本着 ...
- HttpRunner使用总结
1.安装 打开cmd或cmder,输入命令:pip3 install httprunner 安装完成输入命令:hrun -V或hrun -h 检查安装是否成功 2.使用 1)新建test.yaml文件 ...
- doctrine 与 mysql 数据类型的详细转换规则。
doctrine 与 mysql 数据类型的详细转换规则 // mysql -> doctrine array( 'tinyint' => 'boolean', 'smallint' =& ...
- php和thinkphp实现页面调转
1.原生PHP https://www.cnblogs.com/jade640/p/7118565.html 2.thinkPHP跳转方法及重定向 https://blog.csdn.net/Wake ...
- 31.3K star!开源免费本地AI神器,一键部署多模态大模型!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 " 完全开源.本地优先的AI解决方案,支持文本/语音/图像/视频生成,消费级硬件即 ...
- NOIP集训 P11071 「QMSOI R1」 Distorted Fate 题解
对本题的评价:有思维含量的线段树好题.曲子好听,曲绘好看,曲师人品好,谱子写得好,鸠好看 题解: P11071 「QMSOI R1」 Distorted Fate 给定一个长度为 \(n\) 的数组 ...
- Spring基于注解的IOC配置
目录 基于注解的IOC配置 1.用于创建对象的注解 2.用于注入数据的 3.用于改变作用范围的 和生命周期相关 基于注解的IOC配置 曾经XML的配置 <bean id="accoun ...
- js技术之“向数组添加元素”
一.js中对于数组[]的操作很常见 下面记录一下js向数组添加元素的方法 const array=[1,2,3]; console.log('原数组:',array); 效果图 二.用push在数组后 ...
- 关于思源笔记与docker的部分问题
关于思源笔记 sevePath与思源 思源从版本1.9.8之后规定必须设置servePath绑定地址,即仅限指定地址访问. 比如,部署的时候设置的--servePath=127.0.0.1:6806, ...
- vue之sync
在 Vue 中,.sync 是一个用于实现双向数据绑定的特殊修饰符.它允许父组件通过一种简洁的方式向子组件传递一个 prop,并在子组件中修改这个 prop 的值,然后将修改后的值反馈回父组件,实现双 ...