new Vue({ el: '#app', beforeCreate: function () { console.log('調用了beforeCreat鉤子函數') }, created: function () { console.log('調用了created鉤子函數') }, beforeMount: function () { console.log('調用了beforeMount鉤子函數') }, mounted: function () { console.log('調用了mounted鉤子函數') } })
new Vue({ beforeCreate: function () { console.log('調用了beforeCreat鉤子函數') }, created: function () { console.log('調用了created鉤子函數') }, beforeMount: function () { console.log('調用了beforeMount鉤子函數') }, mounted: function () { console.log('調用了mounted鉤子函數') } })
var vm = new Vue({ beforeCreate: function () { console.log('調用了beforeCreat鉤子函數') }, created: function () { console.log('調用了created鉤子函數') }, beforeMount: function () { console.log('調用了beforeMount鉤子函數') }, mounted: function () { console.log('調用了mounted鉤子函數') } }) vm.$mount('#app')
new Vue({ el: '#app', template: '<div id="app"><p>模板在templated參數中找到了喲~</p></div>' }) demo:
<div id="app"><p>模板是在外部HTML中找到的~</p></div> 建立對象實例: new Vue({ el: '#app' })
<div id="app"><p>模板是在外部HTML中找到的~</p></div>
new Vue({ el: '#app', template: '<div id="app"><p>模板在templated參數中找到了喲~</p></div>' })
new Vue({ el: '#demo', render (createElement) { return (....) } })
<div> <header> <h1>I'm a template!</h1> </header> <p v-if="message"> {{ message }} </p> <p v-else> No message. </p> </div>
function anonymous() { with(this){return _c('div',[_m(0),(message)?_c('p',[_v(_s(message))]):_c('p',[_v("No message.")])])} }
對於這一點, 我也感到有些迷惑,百度後以後也沒什麼頭緒,最後我思考的結果是這樣的:正由於render函數和template選項的「優先級」比外部HTML要高,因此,最後通常會存在一個外部HTML模板被Vue實例自己配置的模板所「替代」的過程也就是上圖所說的 「replace」
var vm = new Vue({ el: '#app', data: { number: 1 }, template: '<div id="app"><p></p></div>', beforeUpdate: function () { console.log('調用了beforeUpdate鉤子函數') }, updated: function () { console.log('調用了updated鉤子函數') } }) vm.number = 2
var vm = new Vue({ el: '#app', data: { number: 1 }, // 在模板中使用number這個數據 template: '<div id="app"><p> {{ number }} </p></div>', beforeUpdate: function () { console.log('調用了beforeUpdate鉤子函數') }, updated: function () { console.log('調用了updated鉤子函數') } }) vm.number = 2