最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Vue API中setup ref reactive函數(shù)使用教程

 更新時(shí)間:2022年12月12日 09:18:03   作者:糖^O^  
setup是用來(lái)寫組合式api,內(nèi)部的數(shù)據(jù)和方法需要通過(guò)return之后,模板才能使用。在之前vue2中,data返回的數(shù)據(jù),可以直接進(jìn)行雙向綁定使用,如果我們把setup中數(shù)據(jù)類型直接雙向綁定,發(fā)現(xiàn)變量并不能實(shí)時(shí)響應(yīng)。接下來(lái)就詳細(xì)看看它們的使用

1.setup

組件中所用到的:數(shù)據(jù)、方法等等,均要配置在setup中

setup函數(shù)的兩種返回值:

若返回一個(gè)對(duì)象,則對(duì)象中的屬性、方法, 在模板中均可以直接使用。(重點(diǎn)注意)

若返回一個(gè)渲染函數(shù):則可以自定義渲染內(nèi)容。

注意:

vue2可以讀取vue3里面的數(shù)據(jù)

如果 vue2和vue3沖突,會(huì)用vue3的,所以

盡量不要與Vue2.x配置混用

  • Vue2.x配置(data、methos、computed…)中可以訪問(wèn)到setup中的屬性、方法
  • 但在setup中不能訪問(wèn)到Vue2.x配置(data、methods、computed…)
  • 如果有重名, setup優(yōu)先

setup不能是一個(gè)async函數(shù),因?yàn)榉祷刂挡辉偈莚eturn的對(duì)象, promise,

模板看不到return對(duì)象中的屬性

2.ref函數(shù)

可以定義一個(gè)響應(yīng)式的數(shù)據(jù)

語(yǔ)法: const xxx = ref(initValue)

  • JS中操作時(shí): xxx.value
  • 模板中讀取數(shù)據(jù): 不需要.value,直接:<div>{{xxx}}</div>

注:

  • 接收的數(shù)據(jù)可以是:基本類型、也可以是對(duì)象類型
  • 基本類型的數(shù)據(jù):響應(yīng)式依然是靠Object.defineProperty()getset完成的

3.reactive函數(shù)

一個(gè)對(duì)象類型的響應(yīng)式數(shù)據(jù)(基本類型不要用它,要用ref函數(shù))

const 代理對(duì)象= reactive(源對(duì)象)接收一個(gè)對(duì)象(或數(shù)組),返回一個(gè)代理對(duì)象(Proxy的實(shí)例對(duì)象,簡(jiǎn)稱proxy對(duì)象)

4.Vue3.0中的響應(yīng)式原理

vue2.x的響應(yīng)式

對(duì)象類型:通過(guò)Object.defineProperty()對(duì)屬性的讀取、修改進(jìn)行攔截(數(shù)據(jù)劫持)

數(shù)組類型:通過(guò)重寫更新數(shù)組的一系列方法來(lái)實(shí)現(xiàn)攔截

Object.defineProperty(data, 'count', {
    get () {}, 
    set () {}
})

但是存在一些問(wèn)題: 新增屬性、刪除屬性, 界面不會(huì)更新; 直接通過(guò)下標(biāo)修改數(shù)組, 界面不會(huì)自動(dòng)更新。

Vue3.0的響應(yīng)式

  • 通過(guò)Proxy(代理): 攔截對(duì)象中任意屬性的變化, 包括:屬性值的讀寫、屬性的添加、屬性的刪除等
  • 通過(guò)Reflect(反射): 對(duì)源對(duì)象的屬性進(jìn)行操作
new Proxy(data, {
	// 攔截讀取屬性值
    get (target, prop) {
    	return Reflect.get(target, prop)
    },
    // 攔截設(shè)置屬性值或添加新屬性
    set (target, prop, value) {
    	return Reflect.set(target, prop, value)
    },
    // 攔截刪除屬性
    deleteProperty (target, prop) {
    	return Reflect.deleteProperty(target, prop)
    }
})
proxy.name = 'tom'   

5.reactive對(duì)比ref

從定義數(shù)據(jù)角度對(duì)比:

  • ref用來(lái)定義:基本類型數(shù)據(jù)。
  • reactive用來(lái)定義:對(duì)象(或數(shù)組)類型數(shù)據(jù)。
  • ref也可以用來(lái)定義對(duì)象(或數(shù)組)類型數(shù)據(jù), 它內(nèi)部會(huì)自動(dòng)通過(guò)reactive轉(zhuǎn)為代理對(duì)象

從原理角度對(duì)比:

  • ref通過(guò)Object.defineProperty()getset來(lái)實(shí)現(xiàn)響應(yīng)式
  • reactive通過(guò)使用Proxy來(lái)實(shí)現(xiàn)響應(yīng)式(數(shù)據(jù)劫持), 并通過(guò)Reflect操作源對(duì)象內(nèi)部的數(shù)據(jù)

從使用角度對(duì)比:

  • ref定義的數(shù)據(jù):操作數(shù)據(jù)需要.value,讀取數(shù)據(jù)時(shí)模板中直接讀取不需要.value
  • reactive定義的數(shù)據(jù):操作數(shù)據(jù)與讀取數(shù)據(jù):均不需要.value

到此這篇關(guān)于Vue API中setup ref reactive函數(shù)使用教程的文章就介紹到這了,更多相關(guān)Vue setup ref reactive內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Vue使用el-table實(shí)現(xiàn)表格跨頁(yè)多選

    Vue使用el-table實(shí)現(xiàn)表格跨頁(yè)多選

    在我們?nèi)粘m?xiàng)目開發(fā)中,經(jīng)常會(huì)有表格跨頁(yè)多選的需求,接下來(lái)讓我們用?el-table示例一步步來(lái)實(shí)現(xiàn)這個(gè)需求,文中有詳細(xì)的代碼講解,對(duì)我們的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-08-08
  • Vue關(guān)于訪問(wèn)外鏈?zhǔn)〉膯?wèn)題

    Vue關(guān)于訪問(wèn)外鏈?zhǔn)〉膯?wèn)題

    這篇文章主要介紹了Vue關(guān)于訪問(wèn)外鏈?zhǔn)〉膯?wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-03-03
  • vue 設(shè)置proxyTable參數(shù)進(jìn)行代理跨域

    vue 設(shè)置proxyTable參數(shù)進(jìn)行代理跨域

    這篇文章主要介紹了vue 設(shè)置proxyTable參數(shù)進(jìn)行代理跨域的相關(guān)資料,及代理跨域的概念原理,需要的朋友可以參考下
    2018-04-04
  • 教你使用vue-autofit 一行代碼搞定自適應(yīng)可視化大屏

    教你使用vue-autofit 一行代碼搞定自適應(yīng)可視化大屏

    這篇文章主要為大家介紹了使用vue-autofit 一行代碼搞定自適應(yīng)可視化大屏教程詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2023-05-05
  • Vue.js遞歸組件實(shí)現(xiàn)組織架構(gòu)樹和選人功能

    Vue.js遞歸組件實(shí)現(xiàn)組織架構(gòu)樹和選人功能

    這篇文章主要介紹了Vue.js遞歸組件實(shí)現(xiàn)組織架構(gòu)樹和選人功能,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-07-07
  • Vue實(shí)現(xiàn)微信小程序中預(yù)覽文件的縮放功能

    Vue實(shí)現(xiàn)微信小程序中預(yù)覽文件的縮放功能

    在微信小程序中,默認(rèn)情況下,文件預(yù)覽功能不支持文檔縮放,導(dǎo)致用戶在遇到小字體時(shí)難以清晰閱讀,為了解決這一問(wèn)題并提升用戶體驗(yàn),實(shí)現(xiàn)文檔的縮放功能至關(guān)重要,所以本文
    2024-12-12
  • vue使用Element組件時(shí)v-for循環(huán)里的表單項(xiàng)驗(yàn)證方法

    vue使用Element組件時(shí)v-for循環(huán)里的表單項(xiàng)驗(yàn)證方法

    這篇文章主要介紹了vue使用Element組件時(shí)v-for循環(huán)里的表單項(xiàng)驗(yàn)證方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • vue數(shù)組中不滿足條件跳出循環(huán)問(wèn)題

    vue數(shù)組中不滿足條件跳出循環(huán)問(wèn)題

    這篇文章主要介紹了vue數(shù)組中不滿足條件跳出循環(huán)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Vue路由History模式分析

    Vue路由History模式分析

    Vue-router是Vue的核心組件,主要是作為Vue的路由管理器,Vue-router默認(rèn)hash模式,通過(guò)引入Vue-router對(duì)象模塊時(shí)配置mode屬性可以啟用history模式,本文將通過(guò)代碼示例給大家詳細(xì)分析Vue路由History模式
    2023-06-06
  • vue路由實(shí)現(xiàn)登錄攔截

    vue路由實(shí)現(xiàn)登錄攔截

    這篇文章主要介紹了vue路由如何實(shí)現(xiàn)登錄攔截,幫助大家更好的理解和學(xué)習(xí)使用vue框架,感興趣的朋友可以了解下
    2021-03-03

最新評(píng)論

万宁市| 云龙县| 孟村| 五华县| 永丰县| 重庆市| 沁水县| 洞头县| 洛宁县| 文山县| 梨树县| 雅江县| 从江县| 广州市| 平安县| 巩义市| 海丰县| 哈密市| 沛县| 宁强县| 龙口市| 文安县| 永昌县| 湖南省| 阿城市| 开平市| 姚安县| 龙泉市| 兴国县| 夏津县| 井陉县| 临桂县| 明水县| 凤冈县| 南川市| 砀山县| 遂川县| 青阳县| 黔江区| 太康县| 庆元县|