Vue中如何定義數(shù)據(jù)示例詳解
前言
在開發(fā)的過程中,定義變量是一件非常高頻且十分基礎(chǔ)的事情,如何合理的根據(jù)變量的使用場景和作用域范圍進行定義變量,是一件很小缺很容易犯錯的事情
Vue2已經(jīng)流行使用了這么多年,多數(shù)開發(fā)者在開發(fā)過程中喜愛在data選項中梭哈定義很多變量,這樣做非常不利于代碼的閱讀性、維護性和性能,想要很好的使用變量,需要結(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ù)進行凍結(jié)操作,在Vue中遞歸遍歷數(shù)據(jù)進行數(shù)據(jù)劫持的時候便不會對其進行數(shù)據(jù)劫持,特別對于大量的表格類的數(shù)據(jù)性能提升會顯著一些
可以從Vue源碼中看到,為何使用了Object.freeze對數(shù)據(jù)處理之后,便不會再進行數(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)文章
使用vue2實現(xiàn)帶地區(qū)編號和名稱的省市縣三級聯(lián)動效果
我們知道省市區(qū)縣都有名稱和對應(yīng)的數(shù)字唯一編號,使用編號可以更方便查詢以及程序處理,我們今天來了解一下使用vue2來實現(xiàn)常見的省市區(qū)下拉聯(lián)動選擇效果,需要的朋友可以參考下2018-11-11
vue?elementui?實現(xiàn)圖片上傳后拖拽排序功能示例代碼
這篇文章主要介紹了vue?elementui?實現(xiàn)圖片上傳后拖拽排序功能,本文通過示例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-01-01
element帶輸入建議el-autocomplete的使用
本文主要介紹了element帶輸入建議el-autocomplete的使用,文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下2022-03-03
vue2 中如何實現(xiàn)動態(tài)表單增刪改查實例
本篇文章主要介紹了vue2 中如何實現(xiàn)動態(tài)表單增刪改查實例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-06-06

