美文网首页
Vue3_07(认识Reactive全家桶)

Vue3_07(认识Reactive全家桶)

作者: BingJS | 来源:发表于2022-03-27 15:19 被阅读0次

reactive

用来绑定复杂的数据类型 例如 对象 数组
他是不可以绑定普通的数据类型这样是不允许 会给我们报错

import { reactive} from 'vue'
let person = reactive('sad')

绑定普通的数据类型 可以使用ref
使用reactive 去修改值无须.value
reactive 基础用法:

import { reactive } from 'vue'
let person = reactive({
   name:"小强"
})
person.name = "大强"

数组异步赋值问题
这样赋值页面是不会变化的因为会脱离响应式

let person = reactive<number[]>([])
setTimeout(() => {
  person = [1, 2, 3]
  console.log(person);
},1000)

解决方案1:用push

import { reactive } from 'vue'
let person = reactive<number[]>([])
setTimeout(() => {
  const arr = [1, 2, 3]
  person.push(...arr)
  console.log(person);
},1000)

解决方案2:包裹一层对象

type Person = {
  list?:Array<number>
}
let person = reactive<Person>({
   list:[]
})
setTimeout(() => {
  const arr = [1, 2, 3]
  person.list = arr;
  console.log(person);
},1000)

readonly

拷贝一份proxy对象将其设置为只读

import { reactive ,readonly} from 'vue'
const person = reactive({count:1})
const copy = readonly(person)
//person.count++
copy.count++

shallowReactive

只能对浅层的数据响应式 如果是深层的数据只会改变值 不会改变视图

<template>
  <div>
    <div>{{ state }}</div>
    <button @click="change1">test1</button>
    <button @click="change2">test2</button>
  </div>
</template>
<script setup lang="ts">
import { shallowReactive } from 'vue'
const obj = {
  a: 1,
  first: {
    b: 2,
    second: {
      c: 3
    }
  }
}
const state = shallowReactive(obj)
function change1() {
  state.a = 7
}
function change2() {
  state.first.b = 8
  state.first.second.c = 9
  console.log(state);
}
</script> 
<style>
</style>

相关文章

  • Vue3_07(认识Reactive全家桶)

    reactive 用来绑定复杂的数据类型 例如 对象 数组他是不可以绑定普通的数据类型这样是不允许 会给我们报错 ...

  • [南邮OJ]密码学

    base64全家桶 全家桶全家桶全家桶!我怎么饿了。。。。。。密文(解密前删除回车):R1pDVE1NWlhHUT...

  • (五)React-router路由

    ?React全家桶? React全家桶地址React全家桶(一)之React入门?https://blog.csd...

  • [南邮OJ](密码学)base64全家桶

    题目链接: base64全家桶 150全家桶全家桶全家桶!我怎么饿了。。。。。。密文(解密前删除回车):R1pDV...

  • 全家桶

    React 全家桶1.react主体2.webpack:grunt/gulp 自动化构建工具3.flex 布局4....

  • 全家桶

    今天发了“全家桶”,在等待结果那一刻,即忐忑,又激动,终于是一道杠,这才放下绷紧的心。 小区已经封了近20天了,都...

  • 前端面试2021.4.9

    面试题正文: 1.vue全家桶包含哪些? 答案:vue全家桶与react全家桶介绍 2.v-model是什么?怎么...

  • 前端面试2021.4.9

    面试题正文: 1.vue全家桶包含哪些? 答案:vue全家桶与react全家桶介绍 2.v-model是什么?怎么...

  • 逆天排版神器——affinity publisher ,妈妈再也

    逆天排版神器Affinity Publisher来袭,Affinity 全家桶正式决战 Adobe 全家桶! 继 ...

  • 全家桶,草泥马的全家桶!

    现在都时兴跟着百度学吗麻痹!!!你妹啊,软媒魔方你变了!!!劳资下下来要你小白点方便点,你他妈给我一把瑞士军刀还带...

网友评论

      本文标题:Vue3_07(认识Reactive全家桶)

      本文链接:https://www.haomeiwen.com/subject/nviorrtx.html