vue3使用ref和reactive定義數(shù)據(jù)詳解
vue3使用ref和reactive定義數(shù)據(jù)
現(xiàn)在官網(wǎng)推薦使用ref定義所有變量
但是ref也可以定義引用數(shù)據(jù)類型,如果使用ref定義引用數(shù)據(jù)類型
首先需要先從vue解構(gòu)
import {reactive, ref } from "vue";定義數(shù)據(jù)
let state = reactive({ //使用reactive定義數(shù)據(jù),需要寫成對(duì)象的格式
global: [],
});
let arr = reactive([]) //用reactive只定義一個(gè)空數(shù)組
let test = ref([]); //使用ref定義數(shù)據(jù),直接定義即可
let testObj = ref({});數(shù)據(jù)賦值
// 獲取所有商品
productAll().then(res => {
state.global=res.product //用reactive定義的直接賦值即可
arr.push(...[1,2,3]) //用reactive單個(gè)定義的數(shù)組,通過擴(kuò)展運(yùn)算符,和push賦值
test.value = res.product; //使用ref定義的,需要在定義的變量后邊加.value
testObj.value = res.product[0];
});在模板區(qū)使用,reactive需要用定義的數(shù)據(jù)區(qū),去找到需要用到的數(shù)據(jù)
<template v-for="(item, index) in state.global" :key="index">
<div>購(gòu)買數(shù)量{{ item.buyCount }}</div>
</template>在模板區(qū)使用,ref,直接使用定義的變量即可,不需要.value
<template v-for="(item, index) in test" :key="index">
<div class="test" @click="numClick(index)">
{{ item.uid }}-{{ item.proDescription }}
</div>
</template>操作數(shù)據(jù)中的數(shù)據(jù)
// 用reactive定義的
function getCount(event, index) {
state.global[index].buyCount = event;
}
// 用ref定義的,需要用.value
function numClick(index) {
test.value[index].uid++;
}總結(jié)
JS區(qū)操作
定義數(shù)據(jù)
- reactive定義時(shí),需要寫成對(duì)象的格式,(定義的單個(gè)數(shù)據(jù)不需要)
- ref定義時(shí),直接定義即可
操作數(shù)據(jù)
- 用reactive定義的數(shù)據(jù),直接操作即可,
- 用reactive定義的單個(gè)數(shù)據(jù),需要使用擴(kuò)展運(yùn)算符和push或pop給數(shù)據(jù)賦值
- 用ref定義是數(shù)據(jù),需要在定義的變量后邊加.value
模板區(qū)
- 用reactive定義的數(shù)據(jù),需要用定義時(shí)的變量到所需的變量
- 用ref定義的變量,直接使用變量即可,不需要使用.value
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
VUE中使用滾動(dòng)組件-vueSeamlessScroll
這篇文章主要介紹了VUE中使用滾動(dòng)組件-vueSeamlessScroll,需要的朋友可以參考下2023-10-10
elementUI的table表格改變數(shù)據(jù)不更新問題解決
最近在做vue的項(xiàng)目時(shí)發(fā)現(xiàn)了一個(gè)問題,今天就來解決一下,本文主要介紹了elementUI的table表格改變數(shù)據(jù)不更新問題解決,感興趣的可以了解一下2022-02-02
vue2?對(duì)全局自定義指令一次性進(jìn)行注冊(cè)的方法
這篇文章主要介紹了vue2?對(duì)全局自定義指令一次性進(jìn)行注冊(cè),本文通過實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-06-06
基于vue實(shí)現(xiàn)簡(jiǎn)易打地鼠游戲
這篇文章主要為大家詳細(xì)介紹了基于vue實(shí)現(xiàn)簡(jiǎn)易打地鼠游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2020-08-08
一文帶你重溫Vue中異步更新隊(duì)列的使用場(chǎng)景和場(chǎng)景誤區(qū)
在Vue開發(fā)中,明明同步修改了data中的多個(gè)變量,視圖卻不會(huì)實(shí)時(shí)同步更新,這問題的根源都指向Vue核心性能優(yōu)化特性——異步更新隊(duì)列,下面我們就來看看它的使用場(chǎng)景和場(chǎng)景誤區(qū)吧2026-03-03
Vue實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)方式及傳參方式
這篇文章主要介紹了Vue實(shí)現(xiàn)頁(yè)面跳轉(zhuǎn)方式及傳參方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2024-03-03

