vue3 reactive使用(四)

1:reactive全家桶

rective直接赋值无效,会破坏proxy响应式代理

javascript 复制代码
const newList = reactive<string[]>([])
const newCreate = () => {
  setTimeout(() => {
    const res = ['生活', '升华', '生生不息']
    newList = res  
    console.log('newList:', newList)  // dom没有变化,log会有变化
  }, 500)
}

变通

方案一
javascript 复制代码
const newCreate = () => {
  setTimeout(() => {
    const res = ['生活', '升华', '生生不息']
    newList.push(...res)  // 使用push方法,和解构语法
    console.log('newList:', newList) // dom双向绑定成功,log也正常
  }, 500)
}
方案二

添加一个对象,把数组作为一个属性去解决

javascript 复制代码
let newList = reactive<{
  array: string[]
}>({
  array: [],
})

const newCreate = () => {
  setTimeout(() => {
    const res = ['生活', '升华', '生生不息']
    newList.array = res  // 直接赋值,可以生效
    console.log('newList:', newList)  // dom和log正常显示
  }, 500)
}
  1. readonly:只读
  2. shallowReactive和shallowRef类似,做浅层处理
相关推荐
user_admin_god1 天前
基于Layui Vue Admin + Spring Boot 3.x 的企业级前后端分离管理系统
vue.js·spring boot·layui
wangbing11251 天前
layui窗口标题
前端·javascript·layui
qq_398586541 天前
Utools插件实现Web Bluetooth
前端·javascript·electron·node·web·web bluetooth
李剑一1 天前
mitt和bus有什么区别
前端·javascript·vue.js
VisuperviReborn1 天前
React Native 与 iOS 原生通信:从理论到实践
前端·react native·前端框架
hashiqimiya1 天前
html的input的required
java·前端·html
soda_yo1 天前
JavaScripe中你所不知道的"变量提升"
javascript
Mapmost1 天前
WebGL三维模型标准(二)模型加载常见问题解决方案
前端
Mapmost1 天前
Web端三维模型标准(一):单位与比例、多边形优化
前端
www_stdio1 天前
JavaScript 执行机制详解:从 V8 引擎到执行上下文
前端·javascript