国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法

這篇具有很好參考價(jià)值的文章主要介紹了關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。


關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法,前端,# Vue,前端,Vue3,ref,reactive,響應(yīng)式,vue.js,typescript,原力計(jì)劃

??前言

這篇文章記錄一下 Vue3 響應(yīng)式的內(nèi)容,其中還包括了 reactiveref 的用法。響應(yīng)式是一種允許以聲明式的方式去適應(yīng)變化的編程范例,接下來我們一起看看。


??關(guān)于響應(yīng)式

Vue 框架的特點(diǎn)之一就是響應(yīng)式。Vue 2.x 是基于 Object.defineProperty() 方法實(shí)現(xiàn)響應(yīng)式。但是 Object.defineProperty() 方法有一定的局限性,例如 Object.defineProperty() 無法監(jiān)聽對(duì)象屬性的新增。為了克服解決這種缺陷,Vue3.x 版本引入 Proxy 對(duì)象來實(shí)現(xiàn)響應(yīng)式。
關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法,前端,# Vue,前端,Vue3,ref,reactive,響應(yīng)式,vue.js,typescript,原力計(jì)劃
Proxy 不僅可以監(jiān)聽到屬性的變化和刪除,同時(shí)還支持代理復(fù)雜的數(shù)據(jù)結(jié)構(gòu),例如 Map 、SetSymbol 等等。但是 Proxy 也是缺點(diǎn),就是不兼容 IE 11(實(shí)際開發(fā)中如果要求程序員兼容 IE ,他可能反手就紅溫了hhh)。言歸正傳,如果要考慮兼容 IE 11 的問題,可以使用 Vue 2.x 版本來開發(fā)。


??reactive 的用法

Vuereactive() 方法通過接收一個(gè)對(duì)象,返回對(duì)象的響應(yīng)式副本,我們可以看看下面這段代碼。

<template>
  <p>
    響應(yīng)式Count: {{ reactiveCount.count }}
    <button @click="reactiveCount.count++">++</button>
  </p>
</template>

<script setup lang="ts">
import { reactive } from "vue";
interface CountObject {
  count: number;
}

const reactiveCount = reactive<CountObject>({ count: 0 });
</script>

這里通過 reactive() 方法將 { count: 0 }對(duì)象封裝成一個(gè)響應(yīng)式對(duì)象,并且可以通過點(diǎn)擊頁面中的按鈕來動(dòng)態(tài)實(shí)現(xiàn)數(shù)據(jù)更新,運(yùn)行效果如下圖 (項(xiàng)目剛創(chuàng)建的,路有什么的沒配置,忽略無關(guān)內(nèi)容)。
關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法,前端,# Vue,前端,Vue3,ref,reactive,響應(yīng)式,vue.js,typescript,原力計(jì)劃
reactive() 方法封裝對(duì)象成為響應(yīng)式并不僅僅是一層,而是深層轉(zhuǎn)換。如果想要在 script 模板中修改對(duì)象某個(gè)屬性的值,直接訪問進(jìn)行修改即可。代碼如下。

<template>
  <p>學(xué)生: {{ student.name }}</p>
  <p>成績: {{ student.test_socre.name }} | {{ student.test_socre.score }}分</p>
  <button @click="rest">rest mark</button>
</template>

<script setup lang="ts">
import { reactive } from "vue";
interface Student {
  name: string;
  test_socre: {
    name: string;
    score: number;
  };
}

const student = reactive<Student>({
  name: "ghz",
  test_socre: {
    name: "C語言",
    score: 98,
  },
});

const rest = () => {
  student.test_socre.score = 0;
};
</script>

關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法,前端,# Vue,前端,Vue3,ref,reactive,響應(yīng)式,vue.js,typescript,原力計(jì)劃
點(diǎn)擊按鈕后,分?jǐn)?shù)重置。
關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法,前端,# Vue,前端,Vue3,ref,reactive,響應(yīng)式,vue.js,typescript,原力計(jì)劃
這里 reactive() 將一個(gè)比較復(fù)雜的對(duì)象轉(zhuǎn)換成了響應(yīng)式對(duì)象,通過點(diǎn)擊按鈕,調(diào)用 rest 方法,將 student 對(duì)象中的 test_score 下的 score 重置為 0 分。同時(shí),在方法內(nèi)部,可以直接訪問對(duì)象的屬性進(jìn)行修改數(shù)值。


??ref 的用法

Vue 3.x 中,ref() 負(fù)責(zé)將基本數(shù)據(jù)類型的數(shù)據(jù)封裝成響應(yīng)式數(shù)據(jù)。在所使用的 TypeScript 中,基本數(shù)據(jù)類型有:String 、Number 、Boolean 、Bigint 、Symbol 、Undefined 、Null。

ref() 負(fù)責(zé)接受上述類型的數(shù)組返回一個(gè)響應(yīng)式而且可變的 ref 對(duì)象,如果要獲取其中的值,需要訪問對(duì)象的 .value 屬性來獲取。我們可以看看下面這段代碼。

<template>
  <div></div>
</template>

<script setup lang="ts">
import { ref } from "vue";

const str = ref<string>("hello");
const num = ref<number>(123);
const bool = ref<boolean>(true);
const bigint = ref<bigint>(9007199254740991n);
const symbolObject = Symbol("foo");
const symb = ref<symbol>(symbolObject);
const und = ref<undefined>(undefined);
const nul = ref<null>(null);

console.log(str.value); // hello
console.log(num.value); // 123
console.log(bool.value); // true
console.log(bigint.value); // 9007199254740991nX
console.log(typeof symb.value); // symbol
console.log(symb.value); // Symbol(foo)
console.log(und.value); // undefined
console.log(nul.value); // null
</script>

關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法,前端,# Vue,前端,Vue3,ref,reactive,響應(yīng)式,vue.js,typescript,原力計(jì)劃
從上面的這段代碼中可以看到,如果想要在 script 模板中讀取或者修改 ref 對(duì)象的值,需要從 .value 屬性中獲得。在模板中可以直接通過插值表達(dá)式讀取出來。這里需要注意的是 ref 是響應(yīng)式對(duì)象,所以一旦 ref.value 屬性值被修改,那么對(duì)應(yīng)的頁面模板也會(huì)重新渲染。

reactive() 負(fù)責(zé)封裝對(duì)象變量,ref() 負(fù)責(zé)封裝基礎(chǔ)數(shù)據(jù)類型變量,這兩個(gè)方法是 Vue3 最常見也最重要的命令之一。


??最后

以上就是這篇文章的全部內(nèi)容了,通過這篇文章,我們可以簡單了解學(xué)習(xí) Vue3 響應(yīng)式的內(nèi)容,通過實(shí)際案例我們也學(xué)習(xí)了 reactiveref 的用法。
關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法,前端,# Vue,前端,Vue3,ref,reactive,響應(yīng)式,vue.js,typescript,原力計(jì)劃
文章來源地址http://www.zghlxwxcb.cn/news/detail-520587.html

到了這里,關(guān)于關(guān)于 Vue3 響應(yīng)式 API 以及 reactive 和 ref 的用法的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Vue3通透教程【五】Vue3中的響應(yīng)式數(shù)據(jù) reactive函數(shù)、ref函數(shù)

    專欄介紹: 涼哥作為 Vue 的忠實(shí)粉絲輸出過大量的 Vue 文章,應(yīng)粉絲要求開始更新 Vue3 的相關(guān)技術(shù)文章,Vue 框架目前的地位大家應(yīng)該都曉得,所謂三大框架使用人數(shù)最多,公司選型最多的框架,涼哥之前在文章中也提到過就是 Vue 框架之所以火起來的原因,和 Vue 框架相比其他

    2024年01月24日
    瀏覽(27)
  • 詳解vue3中ref和reactive用法和區(qū)別

    詳解vue3中ref和reactive用法和區(qū)別

    ref 和 reactive 是 Vue3 中用來實(shí)現(xiàn)數(shù)據(jù)響應(yīng)式的API,一般情況下, ref 定義基本數(shù)據(jù)類型, reactive 定義引用數(shù)據(jù)類型。 理解: ref 的參數(shù)一般是基本數(shù)據(jù)類型,也可以是對(duì)象類型;如果參數(shù)是對(duì)象類型,其實(shí)底層的本質(zhì)還是 reactive ,系統(tǒng)就會(huì)自動(dòng)將 ref 轉(zhuǎn)換為 reactive ;我們?nèi)绻?/p>

    2024年02月11日
    瀏覽(19)
  • vue3的ref和reactive的用法和解析

    vue3的ref和reactive的用法和解析

    ?? 1.前言 2.比較 3.ref源碼解析 4.reactive源碼解析 createReactiveObject handles的組成 get陷阱 set陷阱 5.總結(jié) ????????vue3新增了ref,reactive兩個(gè)api用于響應(yīng)式數(shù)據(jù),Ref 系列毫無疑問是使用頻率最高的 api 之一,響應(yīng)式意味著數(shù)據(jù)變動(dòng),頁面局部自動(dòng)更新。數(shù)據(jù)類型有基本數(shù)據(jù)類型(

    2024年02月06日
    瀏覽(21)
  • Vue3手寫api之reactive、readonly、ref

    Vue 3 中的響應(yīng)式編程 API 主要包括 reactive 、 readonly 和 ref 。這些 API 允許你創(chuàng)建具有響應(yīng)式行為的數(shù)據(jù)對(duì)象。下面是手寫這些 API 的簡單示例: reactive 函數(shù)接受一個(gè)普通的 JavaScript 對(duì)象,并返回一個(gè)具有響應(yīng)式行為的代理對(duì)象。 readonly 函數(shù)接受一個(gè)對(duì)象,并返回一個(gè)只讀的代

    2024年02月12日
    瀏覽(16)
  • 【Vue學(xué)習(xí)筆記5】Vue3中的響應(yīng)式:ref和reactive、watchEffect和watch

    【Vue學(xué)習(xí)筆記5】Vue3中的響應(yīng)式:ref和reactive、watchEffect和watch

    所謂響應(yīng)式就是界面和數(shù)據(jù)同步,能實(shí)現(xiàn)實(shí)時(shí)更新。 Vue 中用過三種響應(yīng)式解決方案,分別是 defineProperty、Proxy 和 value setter。Vue 2 使用的方案是 defineProperty API。Vue3中使用的方案是Proxy和value setter。 vue3中實(shí)現(xiàn)響應(yīng)式數(shù)據(jù)的方法是使用ref和reactive。 reactive更推薦去定義復(fù)雜的數(shù)

    2024年02月03日
    瀏覽(32)
  • vue3:5、組合式API-reactive和ref函數(shù)

    vue3:5、組合式API-reactive和ref函數(shù)

    目錄 0、兩者的異同? 備注?:vscode通過volar插件自動(dòng)添加.value 一、reactive() 二、ref()? 三、toRefs和toRef? ? reactive不能處理簡單類型的數(shù)據(jù) reactive重新分配一個(gè)對(duì)象會(huì)失去響應(yīng)式??梢允褂肙bject.assign()代替 ? ? ? ?? ref可以支持任何類型的值(基礎(chǔ)類型以及對(duì)象),但是必須通過

    2024年02月09日
    瀏覽(23)
  • vue3前端開發(fā),自學(xué)一下reactive,ref的差異是什么。

    vue3前端開發(fā),自學(xué)一下reactive,ref的差異是什么。

    vue3前端開發(fā),自學(xué),學(xué)習(xí)一下,reactive和ref的差別。以及基礎(chǔ)用法。 前言,這2個(gè)東西,都能對(duì)外輸出動(dòng)態(tài)的數(shù)據(jù)對(duì)象。但是,有點(diǎn)區(qū)別,是,reactive只支持輸入一個(gè)對(duì)象作為參數(shù),ref則還可以支持簡單的數(shù)據(jù)信息作為參數(shù)。待會(huì)有案例代碼展示。 下面看看代碼內(nèi)容。第一個(gè)

    2024年01月18日
    瀏覽(28)
  • vue3中ref和reactive聯(lián)系與區(qū)別以及如何選擇

    vue3中ref和reactive聯(lián)系與區(qū)別以及如何選擇

    1、ref既可定義基本數(shù)據(jù)類型,也可以定義引用數(shù)據(jù)類型,reactive只能定義應(yīng)用數(shù)據(jù)類型 2、ref在js中取響應(yīng)值需要使用 .value,而reactive則直接取用既可 3、ref定義的對(duì)象通過.value重新分配新對(duì)象時(shí)依舊保持?jǐn)?shù)據(jù)響應(yīng)式,而reactive重新分配新對(duì)象會(huì)失去響應(yīng)式 4、使用ref定義引用數(shù)

    2024年01月25日
    瀏覽(23)
  • Web前端 ---- 【Vue3】computed計(jì)算屬性和watch偵聽屬性(偵聽被ref和reactive包裹的數(shù)據(jù))

    Web前端 ---- 【Vue3】computed計(jì)算屬性和watch偵聽屬性(偵聽被ref和reactive包裹的數(shù)據(jù))

    目錄 前言 computed watch watch偵聽ref數(shù)據(jù) ref簡單數(shù)據(jù)類型 ref復(fù)雜數(shù)據(jù)類型 watch偵聽reactive數(shù)據(jù) 本文介紹在vue3中的computed計(jì)算屬性和watch偵聽屬性。介紹watch如何偵聽被ref和reactive包裹的數(shù)據(jù) 在vue3中,計(jì)算屬性computed也是組合式api,也就是說要先引入,再在setup中使用 語法 完整:

    2024年01月18日
    瀏覽(46)
  • vue3 #ref #reactive

    一、ref 函數(shù)將簡單類型的數(shù)據(jù)包裝為響應(yīng)式數(shù)據(jù) import { ref?} from \\\'vue\\\'? const count = ref(10) 一、reactive函數(shù)將復(fù)雜類型的數(shù)據(jù)包裝為響應(yīng)式數(shù)據(jù) import { reactive} from \\\'vue\\\'? const obj= reactive({ ? ? name : \\\'zs\\\', ? ? age : 18 })

    2024年02月22日
    瀏覽(24)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包