获得徽章 0
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇沸点
如何解决 Vue3 的 watch 新老值相同的问题
```javascript
const proxy = reactive({ name: 'coboy' })
watch(() => cloneDeep(proxy), (newVal, oldVal) => {
})
```
在克隆的时候,就等于深度遍历了 proxy 的每一个 key,然后每一个 key 就和当前 watch 的 reactive effect 实例对象进行了绑定。这个时候和 reactive effect 实例对象绑定的是原响应式对象,所以原响应式对象发生更改的时候,依然会触发当前 watch 的 reactive effect 实例对象的 scheduler 方法执行。
watch 里面新老值返回的都是克隆之后的响应式对象
```javascript
const proxy = reactive({ name: 'coboy' })
watch(() => cloneDeep(proxy), (newVal, oldVal) => {
})
```
在克隆的时候,就等于深度遍历了 proxy 的每一个 key,然后每一个 key 就和当前 watch 的 reactive effect 实例对象进行了绑定。这个时候和 reactive effect 实例对象绑定的是原响应式对象,所以原响应式对象发生更改的时候,依然会触发当前 watch 的 reactive effect 实例对象的 scheduler 方法执行。
watch 里面新老值返回的都是克隆之后的响应式对象
展开
评论
2
赞了这篇沸点
赞了这篇文章
赞了这篇沸点
async await Promise的使用经验总结
// async await + Promise 的一些特别用法
function promise() {
return Promise.resolve('init:')
}
async function test() {
const r = await promise().then((r) => {
console.log('xxx')
return r + 'ggg'
})
console.log('bbb', r)
}
test()
// await 后面也可以是一个普通函数
function promise1() {
return 'promise1'
}
async function test1() {
const r = await promise1()
console.log('bbb', r)
}
test1()
// then后面最好最好要加catch,不然then里报错了,你不知道
// async await + Promise 的一些特别用法
function promise() {
return Promise.resolve('init:')
}
async function test() {
const r = await promise().then((r) => {
console.log('xxx')
return r + 'ggg'
})
console.log('bbb', r)
}
test()
// await 后面也可以是一个普通函数
function promise1() {
return 'promise1'
}
async function test1() {
const r = await promise1()
console.log('bbb', r)
}
test1()
// then后面最好最好要加catch,不然then里报错了,你不知道
展开
评论
2
赞了这篇沸点
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇文章
赞了这篇沸点