1. 程式人生 > >Vue.js學習筆記:關於元件掛載

Vue.js學習筆記:關於元件掛載

最近學習到Vue.js的元件部分,在看完官方文件之後還是一頭霧水,於是自己試驗了一下,將試驗結果記錄下來,以便查閱。

我在跟著文件做了一遍之後,渲染結果為:

<div id="example">
  <div>A custom component!</div>
</div>
到這裡都沒什麼問題,於是我在Vue例項中加上了data:{a:"asd"},而後將template的內容改為:template: '<div>{{a}} custom component!</div>',得到的結果:
<div id="example">
  <div>custom component!</div>
</div>
也就是說使用這種元件註冊的方式呼叫不到Vue例項中的data資料!
<div id="point"></div> <!-- 元件掛載在這個div之內 -->
// 建立可複用的構造器
var Profile = Vue.extend({
  template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>'
})
// 建立一個 Profile 例項
var profile = new Profile({
  data: {
    firstName: 'Walter',
    lastName: 'White',
    alias: 'Heisenberg'
  }  
})
// 掛載到元素上
profile.$mount('#point')
這下執行正常了,這種方式跟上一種的區別在於這一種是直接掛載到指定的元素內部,且建立的例項比如
var profile = new Profile({})
必須跟構造器的變數名相同
var Profile = Vue.extend({})
否則找不到資料。

建立例項的時候也可以用el屬性來掛載元件,比如:

var profile = new Profile({
		el:"#point",
		  data: {
		    firstName: 'Walter',
		    lastName: 'White',
		    alias: 'Heisenberg'
		  }  
		})
效果與
profile.$mount('#point')
掛載效果相同