vue3基础-响应式 API 之 ref 和 reactive
背景
我们知道
ref
函数和reactive
函数用于实现数据的响应性。
ref
在 Vue 3
中,我们可以通过一个新的 ref
函数使任何响应式变量在任何地方起作用,如下所示:
import { ref } from 'vue'
const count = ref(0);
console.log('count ref:', count);
console.log('count ref value :', count.value);
我们在控制台看到输出结果如下:
ref
接收参数并将其包裹在一个带有 value
属性的对象中返回,然后可以使用该属性访问或更改响应式变量的值,比如上面的代码我们使用count.value
去修改值,如下:
count.value = 1;
console.log('count ref value :', count.value);
得到的结果当然就是count.value = 1
.
ps: Vue3
中使用的函数都需要通过import
引用。
总结:
ref
为我们的值
创建了一个响应式引用,当数据发生改变时视图也会更新。
更多信息可查看官方文档 ref 介绍
reactive
reactive
返回对象的响应式副本, 它将解包所有深层的refs
,同时维持ref
的响应性。一般我们用来实现对象或者数组的响应性。
示例
修改用户名后视图实时更新。
<template><div class="home"><div>{{userInfo.name}}</div><button @click="changeUserName">修改名称</button></div>
</template><script lang="ts">
import { defineComponent, ref, reactive } from 'vue';export default defineComponent({name: 'Home',setup(props, context) {const userInfo = reactive({name: '张三',});function changeUserName() {userInfo.name = '李四';}return {userInfo,changeUserName,};},
});
</script>
总结
对于基本数据类型,我们常用ref
函数来实现数据的响应性,而对于复杂类型的数据,我们常用reactive
函数来实现数据的响应性。
在使用ref
时我们还会遇到其他函数,如:unref、toRef、toRefs、isRef
,我们下一节介绍
vue3基础-响应式 API 之 ref 和 reactive相关推荐
- vue3基础-响应式 API 之 unref、toRef、toRefs、isRef
unref 如果参数是一个 ref,则返回内部值,否则返回参数本身. toRef 将对象的某个属性转为响应式,修改值时原始值也会改变,但是值改变不会更新视图 使用示例: <template> ...
- vue3 响应式 API 之 ref
ref 是最常用的一个响应式 API,它可以用来定义所有类型的数据,包括 Node 节点和组件. 没错,在 Vue 2 常用的 this.$refs.xxx 来取代 document.querySel ...
- 【Vue3源码学习】响应式源码解析:reactive、effect、ref
源码版本 Vue3.2.24 废话不多说,直接开始!!! reactive响应式 源码地址:packages/reactivity/reactive.ts 先看一下在 Vue3 中定义的几个用来标记目 ...
- vue3响应式原理之Ref
theme: fancy 一. Ref 用法 这是 ref 最基本的用法,返回来的count是一个响应式的代理值 const count = ref(0) 二. 实现 1. ref 函数 我们调用的r ...
- vue3.0 Beta发布,顺便来看看Vue3 的响应式和以前有什么区别
前言 vue 3.0 Beta 测试版发布 可以通过vue-cli-plugin-vue-next创建一个vue3.0的beta项目. 目前尚不支持IE11,后期可能会处理兼容版本. 对vue3源码有 ...
- vue3.0响应式源码实践,vue3.0初体验
vue3.0响应式源码实践,vue3.0初体验 镇楼图--杀生丸.jpg vue-next(vue3.0预体验) 1. 使用: 2.vue-next的目录结构 3. reactive内部实现 作者上篇 ...
- Vue3的响应式原理解析
Vue3的响应式原理解析 Vue2响应式原理回顾 // 1.对象响应化:遍历每个key,定义getter.setter // 2.数组响应化:覆盖数组原型方法,额外增加通知逻辑 const origi ...
- Vue.js 3.0 响应式 API 比 2.x 好在哪儿?
Hello,各位小伙伴,接下来的一段时间里,我会把我的课程<Vue.js 3.0 核心源码解析>中问题的答案陆续在我的公众号发布,由于课程的问题大多数都是开放性的问题,所以我的答案也不一定 ...
- 响应式API的设计、实现和应用
\ 本文要点: \\ 在进行响应式设计之前,确保你的项目的确适合使用响应式编程\\t 响应式方法总会返回一些什么,因为它们构建了一个执行框架,但是不是开始去执行\\t 响应式编程允许你声明操作之间的状 ...
最新文章
- 博创提供专业的解决方案---宝钢高炉改造无线监控
- linux下删除乱码文件
- python查找文件内容_python 查找文件内容
- 五分钟叫你看懂美国金融危机的成因和巨大危害[转]
- LINUX下安装ORACLE,完全搞定
- [LeetCode] Palindrome Number Valid Palindrome - 回文系列问题
- 安装SQL2000 提示 以前的某个程序安装已在安装计算机上创建挂起的文件
- Java程序员总结出必看的初级~高级技术面试题
- emacs之配置8,gdb调试设置
- 内含福利|CSDN携手字节跳动:云原生Meetup北京站报名热烈启动,1月8日见!
- Qt文档阅读笔记-写一个简单的单元测试
- 2021年中国助听器电池市场趋势报告、技术动态创新及2027年市场预测
- 3 Java学习之 IO
- Linux lpadmin 命令 增加usb打印机
- word文档如何画线条流程图_如何利用word文档工具绘制流程图
- HCIA/HCIP使用eNSP模拟MUX VLAN配置实例与MUX VLAN知识总结(VLAN隔离技术之MUX VLAN)
- 基于CST电磁仿真软件的7-10GHz的微带带通滤波器的设计
- R:员工离职预测实战
- 有没有微信相互投票群?
- 腾讯视频QLV文件格式转换MP4格式