為什麼vue中data必須是一個函式
類比引用資料型別
Object是引用資料型別,如果不用function 返回,每個元件的data 都是記憶體的同一個地址,一個數據改變了其他也改變了;
javascipt只有函式構成作用域(注意理解作用域,只有函式的{}
構成作用域,物件的{}
以及 if(){}
都不構成作用域),data是一個函式時,每個元件例項都有自己的作用域,每個例項相互獨立,不會相互影響
舉個例子:
如果兩個例項同時引用一個物件,那麼當你修改其中一個屬性的時候,另外一個例項也會跟著改;const MyComponent = function() {}; MyComponent.prototype.data = { a: 1, b: 2, } const component1 = new MyComponent(); const component2 = new MyComponent(); component1.data.a === component2.data.a; // true; component1.data.b = 5; component2.data.b // 5
兩個例項應該有自己各自的域才對,需要通過下面的方法來進行處理。
相關推薦
vue中data必須是函式
看了好多部落格論壇啥的,我比較笨不是很理解,包括我之前轉載的一篇,不過我轉載的我是看懂了,今天沒事重新過了下官網,下面我們一起看看官網是如何給出解答的,這裡面第一個他也用了return,但是和我們說的
為什麼vue中data必須是一個函式
類比引用資料型別Object是引用資料型別,如果不用function 返回,每個元件的data 都是記憶體的同一個地址,一個數據改變了其他也改變了;javascipt只有函式構成作用域(注意理解作用域,只有函式的{}構成作用域,物件的{}以及 if(){}都不構成作用域),data是一個函式時,每個元件例項都
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為函式,通過
為什呢vue元件中的data必須是函式?
類比引用資料型別 Object是引用資料型別,如果不用function 返回,每個元件的data 都是記憶體的同一個地址,一個數據改變了其他也改變了; 關於JS中的資料型別: javascipt只有函式構成作用域(注意理解作用域,只有函式的{}構成作用域,物件的{}以及 if(){
vue.js data必須是函數
imp div return boot set 的確 cti 警告 amp <!DOCTYPE html><html><head><meta charset="utf-8"> <title>vue.js Hello
在vue中使用vuex 一個簡單的實例
第一個 改變 size sta ssa num span vue font 1.安裝vuex:npm install vuex --save 2.在main.js文件中引入vuex (請忽略其它代碼) 3.建一個vuex文件夾,然後在建一個store.js(這兩個文件名字
VUE 中data與methods區別
報錯 data back color 數據 con 全部 ack ken ``` let vm=new Vue({ //根實例 el:‘#app‘, data:{//都是數據 }, methods:{ // methods 和data中的數據會全部放到vm上,而且名字不
vue中如何定義全域性函式
//在mian.js中寫入函式 Vue.prototype.changeData = function (){ alert('執行成功'); } //在所有元件裡可呼叫函式 this.changeData();
vue中使用回撥函式,this呼叫無效
let self = this //使用新變數替換this,以免this無效//updateStudentInfoToServer是一個將本身部分資料非同步上傳的介面,this.updateStudentInfoToServer(data, function(res){
vue中data定義
1,定義陣列 var vm=new Vue({ data:{ item:[] } }) 2,定義單個物件 var vm=new Vue({ data:{ item:{} } }) 3,定義字串 var vm=new Vue({ data:{ item:"
python 中,如何在一個函式中呼叫另一個函式返回的多個值中的一個?
在一個函式中呼叫另一個函式返回的多個值中的一個 首先,定義了一個函式 。 程式碼如下: def createDataSet(): group = array([[1.0,1.1],[1
在JavaScript中想讓一個函式執行完畢之後再執行下一個函式?
先說結論: 首先,JavaScript是解釋性語言,本來就是順序執行的!! 所以,如果發現有一段js程式碼總是在一段程式碼之前就執行完了,比如說報了null異常,那麼有可能是回撥函式的非同步機制造成的
vb.net動態載入dll並執行dll中的某一個函式
注意:下面的Dll檔案必須是用託管程式碼寫的,否則請使用API的相應函式進行動態載入。 一、 比如我事先寫了一個類,如下: Public Class TestClass Public Function Add(ByVal add1 As Integer, ByVal
vue中的生命週期函式都在什麼時候執行?
1.beforeCreat 第一個生命週期函式,表示例項在完全創建出來之前會執行它,在執行它時,data和methods中的資料都還未初始化。 2.created 第二個生命週期函式,此時data和methods已經初始化完成,created()完成之後,
vue-為什麼子元件中的data選項必須是函式?
1 <!DOCTYPE html> 2 <html lang="en"> 3 <head> 4 <meta charset="UTF-8"> 5 <title>Title</title> 6 &l
vue中methods一個方法調用另外一個方法
img bsp 方法 調用 .com 9.png es2017 png http vue中methods一個方法調用另外一個方法
vue中循環一個數組,不顯示的問題,弄一個假數據,它反而會循環出來?why?
UC ans res ram 最好的 his get 一個 () 核心:就時this指向的問題,這種情況下最好打印出this看一下 可以在頁面渲染出那個數組 <div>{{listData}}</div>就會看見神奇的事情,竟然時空的解決方案: ge
使用vue中的axios後,對例項中的data進行賦值的問題
總結一下我遇到的一個糾結很久的問題。 在專案中需要用到後臺的資料對前端渲染,使用到了vue整合的axios,使用vue中的鉤子函式在頁面元件掛載完成之後向後臺傳送一個get請求然後將返回後的資料賦值data()中定義的屬性: 執行後前端報錯: 原因: 在請求執行成功後執行
請編寫一個函式,使其可以刪除某個連結串列中給定的(非末尾)節點,你將只被給定要求被刪除的節點
今天給大家分享一個小題目,如下: 請編寫一個函式,使其可以刪除某個連結串列中給定的(非末尾)節點,你將只被給定要求被刪除的節點。 現有一個連結串列 -- head = [4,5,1,9],它可以表示為: 4 -> 5 -> 1 -> 9