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类似,做浅层处理
相关推荐
shmily麻瓜小菜鸡10 分钟前
在 Angular 中, `if...else if...else`
前端·javascript·angular.js
bloglin999991 小时前
npm和nvm和nrm有什么区别
前端·npm·node.js
2501_910227541 小时前
web3 前端常见错误类型以及错误捕获处理
前端·web3
哎哟喂_!2 小时前
Node.js 同步加载问题详解:原理、危害与优化策略
前端·chrome·node.js
__BMGT()2 小时前
C++ QT图片查看器
前端·c++·qt
OK_boom2 小时前
React-useRef
javascript·react.js·ecmascript
未来之窗软件服务2 小时前
solidwors插件 开发————仙盟创梦IDE
前端·javascript·数据库·ide·仙盟创梦ide
小白学大数据2 小时前
基于Scrapy-Redis的分布式景点数据爬取与热力图生成
javascript·redis·分布式·scrapy
Varpb3 小时前
【vue】【环境配置】项目无法npm run serve,显示node版本过低
前端·vue.js·npm
读心悦3 小时前
CSS 溢出内容处理、可见性控制与盒类型设置深度解析
前端·css