需求:vue3中setup组合式api中如何定义响应式数据并且修改赋值呢?
1、字符串/数字:“ref”是vue3中用来存储值的响应式数据源,它可以定义字符串,数字等
- <script setup>
- import { ref } from 'vue'
- // “ref”是用来存储值的响应式数据源。
- // 理论上我们在展示该字符串的时候不需要将其包装在 ref() 中,
- const message = ref('Hello World!')
- // 但是在这个示例中更改这个值的时候,就可以实现数据和页面响应式绑定了。
- function changeMsg(data){
- //message=data 这种是不行的,无法实现双向绑定
- message.value=data
- }
- </script>
- <template>
- <h1>{{ message }}</h1>
- <button @click="changeMsg('数据修改')">Reverse Message</button>
- </template>
2、数组/对象:引入 reactive 用来定义对象数据包括数组和对象
vue3使用proxy
,对于对象和数组都不能直接整个赋值
- <script setup>
- import { reactive} from 'vue'
- const arr = reactive([]);
- const arr2=reactive({arr:[]});
- const load = () => {
- const res = [2, 3, 4, 5]; //假设请求接口返回的数据
- //方法1 失败,直接赋值丢失了响应性
- arr = res;
- // 方法2 这样也是失败
- arr.concat(res);
- // 方法3 成功 插入数据,修改数据属性,但是很麻烦
- res.forEach(e => {
- arr.push(e);
- });
- // 方法4 成功
- arr.value =res
- //方法5 成功
- arr2.arr = res
- };
- </script>
- <template>
- <h1>Demo</h1>
- </template>
这里就是vue3中setup组合式api中如何定义响应式数据并且修改赋值全部内容了
到此这篇关于vue3中如何使用ref和reactive定义和修改响应式数据的文章就介绍到这了,更多相关vue3响应式数据内容请搜索w3xue以前的文章或继续浏览下面的相关文章希望大家以后多多支持w3xue!