isRef和unRef的原理及实现
这一节的两个功能点的实现非常的简单
isRef的功能:判断一个变量是否是一个ref类型
unRef的功能:直接取到变量的.value值
isRef测试用例:
it('isRef',()=>{
const user = reactive({
name:'ljp'
})
const age = ref(18)
expect(isRef(age)).toBe(true)
expect(isRef(1)).toBe(false)
expect(isRef(user)).toBe(false)
})
实现:给RefImpl类创建一个标识,由标识判断是否是ref的类型
unRef测试用例:
it('unRef',()=>{
const age = ref(18)
expect(unRef(age)).toBe(18)
expect(unRef(1)).toBe(1)
})
实现:直接利用刚刚实现的isRef判断是否为ref类型,ref的话返回ref.value否则放回ref
超级简单