1. 程式人生 > >詳解Vue.js中的data

詳解Vue.js中的data

本文從Vue.js的官方中文文件來逐行分析看看Vue.js的資料物件——data

文件之一:



分析一:

首先,data的型別可以是Object


其次,元件(component)裡的定義的data必須是方法型別的,至於為什麼接下來會介紹到;


文件之二:


分析二:

在上圖的例項中,app的data物件中有五個屬性,分別是:

<code>newTodoText,visitCount,hideCompletedTodos,todos,error</code>

Vue會把這五個屬性轉化為getter和setter來控制訪問物件app的屬性,以第一個屬性newTodoText為例設定了getter和setter:


文件之三:


分析三:

這個好理解,就是你可以在data中可以定義屬性時在屬性名開頭加上下劃線“_”或者美元符號“$”,就不可以直接訪問,

           

此時圖一會報錯,顯示 _first is not defined ,圖二才是正確姿勢

文件之四:


分析四:

這就是分析一要解決的問題了,為什麼元件(component)裡的定義的data必須是方法型別,原因就是在此,在工程中,每個元件都有可能用來被建立多個例項,而這個元件的例項他們的屬性是不能共用的!意思是元件A的屬性改變不能引起元件B的同一屬性改變,結合原型鏈知識很容易就能想清楚



相關推薦

Vue.jsdata

本文從Vue.js的官方中文文件來逐行分析看看Vue.js的資料物件——data文件之一:分析一:首先,data的型別可以是Object其次,元件(component)裡的定義的data必須是方法型別的,至於為什麼接下來會介紹到;文件之二:分析二:在上圖的例項中,app的da

vue.js data, prop, computed, method,watch 介紹

vue.js 中 data, prop, computed, method,watch 介紹 data, prop, computed, method 的區別 型別 載入順序 載入時間 寫法 作用 備註 pro

vue開發:vue.js的devtools安裝

安裝 2.下載好後進入vue-devtools-master工程 執行npm install ----->npm run build. 3.修改manifest.json 中的persistent為true 4.開啟谷歌瀏覽器設定--->擴充套件

vue-router 的導航鉤子

vue-router 的導航鉤子,主要用來作用是攔截導航,讓他完成跳轉或取消。 有三種方式可以植入路由導航過程中: 全域性的 單個路由獨享的 元件級的 1. 全域性導航鉤子: 全域性導航鉤子主要有兩種鉤子:前置守衛、後置鉤子, 註冊一個全域性前置守

Vue.jsdata,props和computed資料

在用Vue.js做開發的時候,一定知道 data, props和computed。用了這麼久的Vue就總結一下這個三個東西,首先看看官網怎麼定義他們,https://cn.vuejs.org/v2/a

vue.jsdata的用法

fun div tle new end 用法 pan 位置 turn data在vue框架中位置不一樣,用法也不一樣。簡單地說,在實例中data是一個對象,在組件中data就得是函數返回對象。 new Vue( { data : { tit

Vue的nextTick

方式 執行過程 dom not 方法 http use strong defined   Vue中的nextTick涉及到Vue中DOM的異步更新,感覺很有意思,特意了解了一下。其中關於nextTick的源碼涉及到不少知識,很多不太理解,暫且根據自己的一些感悟介紹下next

-vue項目的文件和目錄

mic 適合 建設 特定 更多 編寫 dev vue組件 webpack 可以用vue-cli來支持一個項目。 建議使用npm 3+更高效的依賴關系樹: $ npm install -g vue-cli $ vue init webpack my-project $

vue.jsdata用return返回

為什麼在專案中data需要使用return返回資料呢? 不使用return包裹的資料會在專案的全域性可見,會造成變數汙染; 使用return包裹後資料中變數只在當前元件中生效,不會影響其他元件。 例如: <script> new Vue( { data() {

WPF圖形表示語法(Path之Data屬性語法)

                大可山 [MSN:a3news(AT)hotmail.com] http://www.zpxp.com 蘿蔔鼠線上圖形影象處理--------------------------------------------------------------老規矩,看圖說話。先看顯示效

vue-element-admin 程式碼 待更新... ....

目錄結構 ├── build // 構建相關   ├── config // 配置相關 ├── src // 原始碼 │   ├

vue的元件通訊的幾種方式(一)

 在另一篇文章我們會談及祖父孫三級之間的通訊,傳送門:vue元件通訊的方式(二) 1.父元件向子元件傳值(繫結屬性): 首先我們定義一個父元件father.vue: <template> <div> <h1>父元件</h1

Visual StudioC#新增引用圖文(using MySql.Data.MySqlClient;無法使用)

使用C#連線MySQL時,遇到名稱空間using MySql.Data.MySqlClient;無法使用。這是因為VS中沒有新增此引用,解決方法如下:(1)下載MySQL.Data.dll,(https

Vuewatch的高級用法

false 觸發 als bsp 初始 編譯 data NPU imm 我們通過實例代碼給大家分享了Vue中watch的高級用法,對此知識點有需要的朋友可以跟著學習下。 假設有如下代碼: <div> <p>FullName: {{fullNam

Vue的插槽

> 作者: 小土豆 > 部落格園:[https://www.cnblogs.com/HouJiao/](https://www.cnblogs.com/HouJiao/) > 掘金:[https://juejin.im/user/2436173500265335](https://juejin.im/

Vue的computed和watch

> 作者:小土豆 > 部落格園:[https://www.cnblogs.com/HouJiao/](https://www.cnblogs.com/HouJiao/) > 掘金:[https://juejin.cn/user/2436173500265335](https://juejin.cn/u

VueVue生命周期

pda -a clas 文本 con 存在 操作 ef6 註意 Vue實例的生命周期全過程(圖) (這裏的紅邊圓角矩形內的都是對應的Vue實例的鉤子函數) 在beforeCreate和created鉤子函數間的生命周期 在beforeC

VueVue組件系統

最終 文件 type html中 emit 監聽 做了 駝峰命名 操作 Vue渲染的兩大基礎方式 new 一個Vue的實例 這個我們一般會使用在掛載根節點這一初始化操作上: new Vue({ el: ‘#app‘ }) 註冊組件並使用 通過

Web請求的DNS域名解析

返回 .com 承擔 接受 性能 出現 感覺 技術 image   當我們打開瀏覽器,輸入一個URL去請求我們需要的資源,但是URL是需要解析成對應的IP地址才能與遠程主機建立連接,如何將URL解析成IP就是DNS的工作範疇,即使作為開發人員,這個過程我們也感覺不到,但是它

vue.js使用Axios

con http -type response ces errno 規範 pro es6 Axios為vue2.0官方推薦HTTP請求工具,之前的是vue-resource 在使用的過程中總結了兩種使用方式:   1.和vue-resource使用類似     引入:imp