背景

我们知道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相关推荐

  1. vue3基础-响应式 API 之 unref、toRef、toRefs、isRef

    unref 如果参数是一个 ref,则返回内部值,否则返回参数本身. toRef 将对象的某个属性转为响应式,修改值时原始值也会改变,但是值改变不会更新视图 使用示例: <template> ...

  2. vue3 响应式 API 之 ref

    ref 是最常用的一个响应式 API,它可以用来定义所有类型的数据,包括 Node 节点和组件. 没错,在 Vue 2 常用的 this.$refs.xxx 来取代 document.querySel ...

  3. 【Vue3源码学习】响应式源码解析:reactive、effect、ref

    源码版本 Vue3.2.24 废话不多说,直接开始!!! reactive响应式 源码地址:packages/reactivity/reactive.ts 先看一下在 Vue3 中定义的几个用来标记目 ...

  4. vue3响应式原理之Ref

    theme: fancy 一. Ref 用法 这是 ref 最基本的用法,返回来的count是一个响应式的代理值 const count = ref(0) 二. 实现 1. ref 函数 我们调用的r ...

  5. vue3.0 Beta发布,顺便来看看Vue3 的响应式和以前有什么区别

    前言 vue 3.0 Beta 测试版发布 可以通过vue-cli-plugin-vue-next创建一个vue3.0的beta项目. 目前尚不支持IE11,后期可能会处理兼容版本. 对vue3源码有 ...

  6. vue3.0响应式源码实践,vue3.0初体验

    vue3.0响应式源码实践,vue3.0初体验 镇楼图--杀生丸.jpg vue-next(vue3.0预体验) 1. 使用: 2.vue-next的目录结构 3. reactive内部实现 作者上篇 ...

  7. Vue3的响应式原理解析

    Vue3的响应式原理解析 Vue2响应式原理回顾 // 1.对象响应化:遍历每个key,定义getter.setter // 2.数组响应化:覆盖数组原型方法,额外增加通知逻辑 const origi ...

  8. Vue.js 3.0 响应式 API 比 2.x 好在哪儿?

    Hello,各位小伙伴,接下来的一段时间里,我会把我的课程<Vue.js 3.0 核心源码解析>中问题的答案陆续在我的公众号发布,由于课程的问题大多数都是开放性的问题,所以我的答案也不一定 ...

  9. 响应式API的设计、实现和应用

    \ 本文要点: \\ 在进行响应式设计之前,确保你的项目的确适合使用响应式编程\\t 响应式方法总会返回一些什么,因为它们构建了一个执行框架,但是不是开始去执行\\t 响应式编程允许你声明操作之间的状 ...

最新文章

  1. 博创提供专业的解决方案---宝钢高炉改造无线监控
  2. linux下删除乱码文件
  3. python查找文件内容_python 查找文件内容
  4. 五分钟叫你看懂美国金融危机的成因和巨大危害[转]
  5. LINUX下安装ORACLE,完全搞定
  6. [LeetCode] Palindrome Number Valid Palindrome - 回文系列问题
  7. 安装SQL2000 提示 以前的某个程序安装已在安装计算机上创建挂起的文件
  8. Java程序员总结出必看的初级~高级技术面试题
  9. emacs之配置8,gdb调试设置
  10. 内含福利|CSDN携手字节跳动:云原生Meetup北京站报名热烈启动,1月8日见!
  11. Qt文档阅读笔记-写一个简单的单元测试
  12. 2021年中国助听器电池市场趋势报告、技术动态创新及2027年市场预测
  13. 3 Java学习之 IO
  14. Linux lpadmin 命令 增加usb打印机
  15. word文档如何画线条流程图_如何利用word文档工具绘制流程图
  16. HCIA/HCIP使用eNSP模拟MUX VLAN配置实例与MUX VLAN知识总结(VLAN隔离技术之MUX VLAN)
  17. 基于CST电磁仿真软件的7-10GHz的微带带通滤波器的设计
  18. R:员工离职预测实战
  19. 有没有微信相互投票群?
  20. 腾讯视频QLV文件格式转换MP4格式

热门文章

  1. matlab给数组等间距赋值从5到15,matlab等间隔连续赋值
  2. 前端html通栏做法实践
  3. 2022-2028全球与中国内存测试设备市场现状及未来发展趋势
  4. 许式伟、张宴——系统架构运维思路对话
  5. MySQL查找价格最高的图书经销商的几种SQL语句
  6. 【考研经验】2018北邮计算机学院考研经验(复试经验较多)
  7. Net-a-Porter Coach factory outlet
  8. 蓦然回首,那人却在灯火阑珊处
  9. 〖大前端 - 基础入门三大核心之CSS篇⑱〗- CSS中的背景
  10. Spanner 论文小结