vue3 rective 全家桶,to类了解 (1)

发布于:2024-12-18 ⋅ 阅读:(150) ⋅ 点赞:(0)

学习  reactive 

 reactive 只接受 引用类型的数据,不可直接改变值,识图不会改变,可以写成对象,将属性改变

<template>

<div v-for="item in arr">
{{ item }}
</div>
<br>

<div v-for="item in arrb.arr">
{{ item }}
</div>

<button @click="changeArr">赋值arr</button>

</template>


<script setup lang='ts'>
import { ref, reactive} from 'vue'
const arr = reactive<string[]>(['hh', 'nn', 'mm'])  //直接写成数组类型是不能直接进行赋值操作的

const arrb = reactive({    //写成对象形式是可以进行赋值操作的,将数组当成一个属性去操作
 arr: ['hh', 'nn', 'mm']
})

function changeArr() { 
  // arr = ['aa', 'bb', 'cc']  //不可直接赋值,数组不会改变  代码会报错

  // arr.push(...['aa', 'bb', 'cc'])  //结构赋值的话数组会改变  

  arrb.arr= ['aa', 'bb', 'cc']  // 写成对象是可以直接改变数组的
}
</script>

以下是自己学习时的全部代码

知识拓展

rective 全家桶  to系类 

<template>

arr
<div v-for="item in arr">
{{ item }}
</div>
<br>

<div v-for="item in arrb.arr">
{{ item }}
</div>

<button @click="changeArr">赋值arr</button>

</template>
<script setup lang='ts'>
import { ref, reactive, readonly, shallowReactive, toRef, toRefs } from 'vue'


//常用
// reactive 只接受引用类型   ref 支持所有类型  
// reactive 不可直接赋值,会将原来 proxy 破坏,数据将不再是响应式


//readonly 数据只读,不可改变
// 使用 readonly(arr)  数据只读


//shallowReactive 浅层 reactive 修改值的话只能指向第一层
// 例如  const obj={one:{two:{three:1}}}
// 改变值的话 obj.one.two.three=2 识图不会更新
// obj.one = {two:{three:456}}  //这种是会改变
//跟 ref 相似 shallowReactive 也会受  reactive 的影响,将原本不会改变的值改变



// toRef  对响应式有效,非响应式,识图不会有任何改变
//const arr = {   将arr 改变成 响应式对象的话,可以改变newarr的值
//  name:1
// }
// toRef 接受两个值 ('值',key值)
//const newarr = toRef(arr,'name')   将name值提出来,赋值给newarr



//torefs 将 数组里面的 都变成 ref 对象 ,仅对响应式对象生效 大多用于结构赋值
// const arr = reactive([name:1])  
//const {name}=torefs(arr)  结构出来的是响应式的




const arr = reactive<string[]>(['hh', 'nn', 'mm'])  //直接写成数组类型是不能直接进行赋值操作的

const arrb = reactive({    //写成对象形式是可以进行赋值操作的,将数组当成一个属性去操作
 arr: ['hh', 'nn', 'mm']
})

function changeArr() { 
  // arr = ['aa', 'bb', 'cc']  //不可直接赋值,数组不会改变  代码会报错

  // arr.push(...['aa', 'bb', 'cc'])  //结构赋值的话数组会改变  

  arrb.arr= ['aa', 'bb', 'cc']  // 写成对象是可以直接改变数组的
}

</script>
<style scoped>

</style>

网站公告

今日签到

点亮在社区的每一天
去签到