ref和reactive的使用

ref和reactive的使用场景区别

  • ref可以包装基本类型、数组、对象;reactive只能用来包装引用类型。
  • ref包装的数组和对象可以整体赋值,reactive包装的引用类型不能整体被赋值
  • ref在script中需要'.value'出来;reactive不需要

常常这样用

复制代码
1、基本类型用ref
let n = ref(0);
n.value = 1;
2、数组用ref
let arr = ref([1,2]);
arr.value = [1,2,3];
3、对象用reactive
let obj = reactive({name: 'jim'});
Object.assign(obj,{age: 18});  -> {name:'jim', age:18}

使用ref获取dom

复制代码
<div ref="xx">
API选项中:
this.$refs.xx
setup中:
const xx = ref(),在onMounted中使用

customRef(costomRef可以理解为被拦截的ref)

复制代码
const myRef = (value) => {
  return customRef((track, trigger) => {
    return {
      get() {
        track()
        return value
      },
      set(newValue) {
        if(newValue < 10) {
          value = newValue
          // 延迟渲染
          setTimeout(() => {
            trigger()
          }, 2000);
        }
      }
    }
  })
}

从reactive对象中解构出属性作为响应式数据使用

复制代码
let obj = reactive({
 name: 'jim',
 age: 18
})
let {name, age} = toRefs(obj) // 此时name和age就是响应式的数据
相关推荐
金融小白数据分析之路1 分钟前
java 打包exe maven 版本
java·开发语言·maven
changshuaihua0014 分钟前
useState 状态管理
开发语言·前端·javascript·react.js
聆风吟º7 分钟前
【Python编程日志】Python入门基础(二):行 | 缩进 | print输出
开发语言·python·print··缩进
lsx20240610 分钟前
Servlet 点击计数器
开发语言
鹏程十八少10 分钟前
6. 2026金三银四 面试官最爱的 Binder:一次拷贝、Activity 启动流程,这篇全搞定
前端·面试·前端框架
卷心菜狗11 分钟前
Python进阶-闭包与装饰器
开发语言·python·学习
知识分享小能手14 分钟前
ECharts入门学习教程,从入门到精通,综合实战——ECharts数据大屏 - 完整知识点(9)
前端·学习·echarts
凯瑟琳.奥古斯特15 分钟前
C++变量命名进阶技巧
开发语言·c++
是吗乔治15 分钟前
vuetify实现excel表格粘贴效果
前端·vue.js·vue·excel
不羁的fang少年16 分钟前
Netty网络模型
java·开发语言