vue.js

关注公众号 jb51net

关闭
首页 > 网络编程 > JavaScript > javascript类库 > vue.js > vue3响应式对象api

vue3常用响应式对象的api,你全用过了吗

作者:前端不秃头

这篇文章主要给大家介绍了关于vue3常用响应式对象api的相关资料,文中通过实例代码介绍的非常详细,对大家学习或者使用vue3具有一定的参考学习价值,需要的朋友可以参考下

Ⅰ. ref、reactive ( 递归监听 )

import {ref,reactive} from 'vue';
setup() {
    const num =  ref(123);
    num.value = 456;
     
    const obj = reactive({num:123});
    obj.value = 456;
}

Ⅱ. isRef、isReactive ( 判断 )

import {isRef,isReactive} from 'vue';
setup() {
	const num = ref(123)
    console.log(isRef(num))  // => true
}

Ⅲ. toRef 和 toRefs ( 解构 )

toRef (一个属性)

import { toRef , reactive } from 'vue';
setup() {
	const obj = reactive({ width:10, height:20 })
    const width = toRef(obj,'width')
	
	return {
		width
	}
}

toRefs ( 所有 )

import { toRefs , reactive } from 'vue';
setup() {
	const obj = reactive({ width:10, height:20 })
    const { width, height }= toRefs(obj)
	
	return {
		width, height
	}
}
import { toRefs , reactive } from 'vue';
setup() {
	const obj = reactive({ width:10, height:20 })
	
	return {
		...toRefs(obj)
	}
}

Ⅳ. toRaw 、 markRaw ( 解除代理)

toRaw ( 不影响本身 )

import {toRaw} from 'vue';
setup(){
    const num1 =  ref(123)
    const num2 = toRaw(num1)
    console.log(num2 === 123)  //=>true
}

markRaw ( 添加 非响应对象 属性 )

import { markRaw, reactive } from "vue";
setup(){
	const obj = reactive({ num:1 }); //让数据无法被追踪
	      obj.noUpdate = markRaw({num:1});

	function add() {
  		obj.num++;      // 页面数据 会更新
  	
  		obj.noUpdate.num++; //页面数据 不会更新
	}
	return { obj , add }
}

Ⅴ. unref ( 拷贝 )

const aaa = ref('abc');
const bbb = unref(aaa); 

Ⅵ. shallowRef 、shallowReactive( 非递归监听 )

shallowRef 、shallowReactive(非递归监听)

import {shallowRef,shallowReactive} from 'vue';
setup(){
	const  obj1 = shallowRef({a:1,b:{c:2})
	const  obj2 = shallowReactive({a:1,b:{c:2})

	obj1.value.a = 2  //页面未更新

	obj2.b.c = 3  //页面未更新
}

Ⅶ. triggerRef (强制更新)

import {triggerRef, shallowRef} from 'vue';
setup(){
	const  obj1 = shallowRef({a:1,b:{c:2})
    obj1.value.a = 2 //页面没有发生更新,因为只监听value第一层

	triggerRef(obj1);   // 强制更新

总结

到此这篇关于vue3常用响应式对象的api的文章就介绍到这了,更多相关vue3响应式对象api内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:
阅读全文