1. 程式人生 > >Vue元件data必須是函式的理解

Vue元件data必須是函式的理解

我們先來看data的幾種寫法:

1、

<script type="text/javascript">
    var app=new Vue({
        el:'#app',
        data:{
            isLogin: false
        }
    })
</script>
2、
<script type="text/javascript">
    var app=new Vue({
        el:'#app',
        data: function(){
            return {
                isLogin: false
            }
        }
    })
</script>
3、
<script type="text/javascript">
    var app=new Vue({
        el:'#app',
        data() {
            return {
                isLogin: false
            }
        }
    })
</script>

第三種是第二種的ES6寫法。

一、在簡單的Vue例項中,1、2寫法沒有什麼區別,因為你的app物件不會被複用

var app = new Vue({...})
二、但是在元件中,因為可能在多處呼叫同一組件,為了不讓多處的元件共享同一data物件,只能返回函式。

data為物件的話會報錯,為了理解這種機制,我們假設data為一個物件,那麼這同一個物件有可能被很多例項共享,一個例項改變其它也會跟著變,這明顯是不對的。而通過data函式,每新建一個例項,都會呼叫data來return一組新的原始資料。

相關推薦

Vue元件data必須函式理解

我們先來看data的幾種寫法:1、<script type="text/javascript"> var app=new Vue({ el:'#app', data:{ isLogin: false

VUE元件data必須函式function的原因

vue元件中data值不能為物件,因為物件是引用型別,元件可能會被多個例項同時引用。如果data值為物件,將導致多個例項共享一個物件,其中一個元件改變data屬性值,其它例項也會受到影響。 上面解釋了data不能為物件的原因,這裡我們簡單說下data為函式的原因。data為函式,通過

vuedata必須函式

看了好多部落格論壇啥的,我比較笨不是很理解,包括我之前轉載的一篇,不過我轉載的我是看懂了,今天沒事重新過了下官網,下面我們一起看看官網是如何給出解答的,這裡面第一個他也用了return,但是和我們說的

為什麼vuedata必須是一個函式

類比引用資料型別Object是引用資料型別,如果不用function 返回,每個元件的data 都是記憶體的同一個地址,一個數據改變了其他也改變了;javascipt只有函式構成作用域(注意理解作用域,只有函式的{}構成作用域,物件的{}以及 if(){}都不構成作用域),data是一個函式時,每個元件例項都

vue.js data必須是函數

imp div return boot set 的確 cti 警告 amp <!DOCTYPE html><html><head><meta charset="utf-8"> <title>vue.js Hello

Vue元件data等屬性

注意: 1.元件中的data屬性的內容,必須是一個function型別,並且必須要有返回值。用法跟例項中的data使用是一樣的,同時也有例項化物件的其他屬性如,methods 2.因為如果,不是這裡面的物件,而是一個公共的物件例項,可能會出現錯誤。不同的元件如果改變了公共

為什呢vue元件中的data必須函式

類比引用資料型別 Object是引用資料型別,如果不用function 返回,每個元件的data 都是記憶體的同一個地址,一個數據改變了其他也改變了; 關於JS中的資料型別: javascipt只有函式構成作用域(注意理解作用域,只有函式的{}構成作用域,物件的{}以及 if(){

深入理解計算機系統配套實驗(一) data lab 函式詳解

/* 135. * bitAnd - x&y using only ~ and | 136. * Example: bitAnd(6, 5) = 4 137. * Legal ops: ~ | 138. * Max ops: 8 139. *

Vue元件通訊之二:事件監聽函式$emit/$on/$off

在vue2.x版本中自定義時間都需要通過$emit/$on/$off函式來進行觸發、監聽和取消監聽。 如果瞭解過JavaScript的設計模式-------觀察者模式,一定知道dispatchEvent和addEventListener這兩個方法。Vue元件中也有與之類似的模式,子元件用$emi

Vue生命週期鉤子函式理解

對Vue生命週期鉤子函式的理解 例項建立之後,初始化事件和生命週期,而後觸發beforeCreate。beforeCreate,當前例項建立之前,很少操作,一般用於載入動畫,比如建立一個旋轉動畫。created表示當前例項建立完成,元件、屬性等初始化完成,一般封裝一個方法,從網路請求資料

Vue.js之元件data的使用

官網連結:https://cn.vuejs.org/v2/guide/components.html 參考連結:http://www.cnblogs.com/keepfool/p/5625583.html 教學視訊參考連結: https://ke.qq.com/webcourse/ind

Vue元件的component中data屬性function傳物件和不穿的物件的區別(不同效果)

話不多說上程式碼測試: 定義一個全域性元件,繫結msg 我們首先看如果把data的值外傳不在元件裡面建立的效果 <body> <div id="app"> <counter></counter>

vue父子元件生命週期函式執行順序

vue父元件載入和銷燬執行最後一個鉤子函式之前先執行一遍子元件的鉤子: 1.載入 父:beforecreate-created-beforeMount-(子:beforecreate-created-beforeMount-mounted)-mounted 2.銷燬 父:beforeDestroy--

關於Vue元件data選項某個屬性引用子元件props定義的屬性的幾點思考

學過Vue的都知道Vue等MVVM框架相對於傳統的JS庫比如Jquery最大的區別在於資料驅動檢視,重點在於資料,拿到資料後將資料通過模板{{}}語法或者v-html展示在頁面上。 我們也都知道在Vue父子元件可以通過Props實現父元件傳遞到子元件。 在專案開

Vue元件理解動態元件理解案例

因為元件是可複用的 Vue 例項,所以它們與 new Vue 接收相同的選項,例如 data、computed、watch、methods 以及生命週期鉤子等。僅有的例外是像 el這樣根例項特有的選項 http://qd.ssjzw.com/job/2012055379.h

vue所有生命週期函式/鉤子函式理解

下邊是一個template 的程式碼,裡邊包含了所有vue 生命週期函式,我們可以vue-cli 專案中新建一個模板把下邊程式碼全都複製進去,然後F12開啟審查元素,觀察這些生命週期函式打印出來的log 裡的區別! <template> <div class

15.Vue元件中的data

1.元件中展示資料和響應事件: // 1. 元件可以有自己的 data 資料 // 2. 元件的 data 和 例項的 data 有點不一樣,例項中的 data 可以為一個物件 // 3. 但是元件中的 data 必須是一個方法 data: function(){}或者data(){} // 4. 元件中的

vue、vueRoute鉤子函式理解

一:先來張對比圖壓壓驚,理理思路 1.beforeCreated鉤子 該階段元件例項剛建立,元件屬性計算之前(可理解為元件屬性還未初始化,未繫結,未掛載元素el),比如:el,data,method

vue 元件 mint-ui】 看了一下原始碼,給輪播圖Swiper封裝自定義跳轉的函式

mint-ui 自身提供了前一頁,後一頁的function,這裡由於專案需求,點選任意tab都可跳轉到相應的圖片,所以自己封裝了一個function:switchCar。 Usage import Mint from ‘mint-ui’;

vue生命周期的理解

log instance code 結構 images 輸入 分享 upd 對象 如下圖為Vue官網(https://cn.vuejs.org/v2/guide/instance.html#實例生命周期)給出的生命周期圖示 光看圖或許不夠直觀,接下來就是一段代碼來加強理解