15.Vue元件中的data
阿新 • • 發佈:2019-01-12
1.元件中展示資料和響應事件:
// 1. 元件可以有自己的 data 資料
// 2. 元件的 data 和 例項的 data 有點不一樣,例項中的 data 可以為一個物件
// 3. 但是元件中的 data 必須是一個方法 data: function(){}或者data(){}
// 4. 元件中的 data 除了必須為一個方法之外,這個方法內部,還必須返回一個物件才行;
// 5. 元件中 的data 資料使用方式,和例項中的 data 使用方式完全一樣!
程式碼例項:
<!DOCTYPE html> <html lang="en"> <headView Code> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="./lib/vue-2.4.0.js"></script> </head> <body> <divid="app"> <mycom1></mycom1> </div> <script> // 1. 元件可以有自己的 data 資料 // 2. 元件的 data 和 例項的 data 有點不一樣,例項中的 data 可以為一個物件 // 3. 但是元件中的 data 必須是一個方法 data: function(){}或者data(){} // 4. 元件中的 data 除了必須為一個方法之外,這個方法內部,還必須返回一個物件才行; // 5. 元件中 的data 資料使用方式,和例項中的 data 使用方式完全一樣!!!Vue.component('mycom1', { template: '<h1>這是全域性元件 --- {{msg}}</h1>', data: function () { return { msg: '這是元件的中data定義的資料' } } }) // 建立 Vue 例項,得到 ViewModel var vm = new Vue({ el: '#app', data: {}, methods: {} }); </script> </body> </html>
注意:
Vue.component('mycom1', { template: '<h1>這是全域性元件 --- {{msg}}</h1>', data: function () { return { msg: '這是元件的中data定義的資料' } } })
注意:元件中的 data 必須是一個方法 data: function(){}或者data(){},這個方法內部,還必須返回一個物件才行:
為什麼?
例項:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Document</title> <script src="./lib/vue-2.4.0.js"></script> </head> <body> <div id="app"> <counter></counter> <hr> <counter></counter> <hr> <counter></counter> </div> <template id="tmpl"> <div> <input type="button" value="+1" @click="increment"> <h3>{{count}}</h3> </div> </template> <script> var dataObj = { count: 0 } // 這是一個計數器的元件,身上有個按鈕,每當點選按鈕,讓 data 中的 count 值 +1 Vue.component('counter', { template: '#tmpl', data: function () { // return dataObj:表示每個元件中data資料共享 return { count: 0 } //私有 }, methods: { increment() { this.count++ } } }) // 建立 Vue 例項,得到 ViewModel var vm = new Vue({ el: '#app', data: {}, methods: {} }); </script> </body> </html>View Code
Vue元件中的method,見上面程式碼