Vue中如何定義數(shù)據(jù)示例詳解
前言
在開發(fā)的過程中,定義變量是一件非常高頻且十分基礎(chǔ)的事情,如何合理的根據(jù)變量的使用場景和作用域范圍進(jìn)行定義變量,是一件很小缺很容易犯錯的事情
Vue2已經(jīng)流行使用了這么多年,多數(shù)開發(fā)者在開發(fā)過程中喜愛在data選項中梭哈定義很多變量,這樣做非常不利于代碼的閱讀性、維護(hù)性和性能,想要很好的使用變量,需要結(jié)合Vue和JS的特性
在Vue中,按照是否需要雙向數(shù)據(jù)綁定,可以將變量分為兩種:
一種是需要被Vue的數(shù)據(jù)劫持,將data的變化實時響應(yīng)到view上
只要data只能夠的msg變化, template中綁定的msg會實時響應(yīng)
<template>
<div>{{msg}}</div>
</template>
<script>
export default {
data() {
msg: ""
}
};
</script>
還有一種不需要被Vue數(shù)據(jù)劫持:
僅在script中生效,在template中沒有使用,不需要數(shù)據(jù)劫持
name僅在concatName函數(shù)中生效,那么將其作為局部變量定義即可
age在函數(shù)getAge和concatName中都需要使用,作為局部變量使用不合適,那么可以將其作用域提升,方便在多個地方使用
<script>
const age = 'bar'
export default {
methods: {
getAge() {
return age
},
concatName() {
let name = 'nordon'
reutrn `name:${name}, age: ${age} `
}
},
};
</script>
僅僅是在template中作為渲染數(shù)據(jù)使用,自定義之后便不會在后續(xù)的操作中對其修改,這種數(shù)據(jù)如果使用Vue對其數(shù)據(jù)劫持會浪費一些性能
<template>
<div v-for="item in arr">{{item.name}}</div>
</template>
<script>
const arr = Object.freeze([{
name: 'nordon',
age: 18
}])
export default {
data() {
return {
arr
}
}
};
</script>
使用Object.freeze將不需要數(shù)據(jù)劫持的數(shù)據(jù)進(jìn)行凍結(jié)操作,在Vue中遞歸遍歷數(shù)據(jù)進(jìn)行數(shù)據(jù)劫持的時候便不會對其進(jìn)行數(shù)據(jù)劫持,特別對于大量的表格類的數(shù)據(jù)性能提升會顯著一些
可以從Vue源碼中看到,為何使用了Object.freeze對數(shù)據(jù)處理之后,便不會再進(jìn)行數(shù)據(jù)劫持
function defineReactive (obj, key) {
// 刪除無關(guān)代碼 只保留了判斷條件
const property = Object.getOwnPropertyDescriptor(obj, key)
if (property && property.configurable === false) {
return
}
}
總結(jié)
到此這篇關(guān)于Vue中如何定義數(shù)據(jù)的文章就介紹到這了,更多相關(guān)Vue定義數(shù)據(jù)內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue3中如何使用ref和reactive定義和修改響應(yīng)式數(shù)據(jù)(最新推薦)
這篇文章主要介紹了vue3中如何使用ref和reactive定義和修改響應(yīng)式數(shù)據(jù),這里就是vue3中setup組合式api中如何定義響應(yīng)式數(shù)據(jù)并且修改賦值全部內(nèi)容,需要的朋友可以參考下2022-12-12
element-ui tooltip修改背景顏色和箭頭顏色的實現(xiàn)
這篇文章主要介紹了element-ui tooltip修改背景顏色和箭頭顏色的實現(xiàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-12-12
vue Cli 環(huán)境刪除與重裝教程 - 版本文檔
這篇文章主要介紹了vue Cli 環(huán)境刪除與重裝教程 - 版本文檔,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09
vue學(xué)習(xí)筆記之v-if和v-show的區(qū)別
本篇文章主要介紹了vue學(xué)習(xí)筆記之v-if和v-show的區(qū)別,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-09-09

