Vue的Options用法說明
阿新 • • 發佈:2020-08-17
el:掛載點
與$mount有替換關係
new Vue({ el: "#app" }); new Vue({}).$mount('#app')
注:被你選為掛載點的那個元素,如果在index.html裡那個元素裡面本來就有內容,在渲染時會消失(網速慢可以看到),被這個vue例項的對應內容所覆蓋。
data:內部資料
支援物件和函式,優先用函式
new Vue({ //優先使用函式 data() { return { n: 0,} } }).$mount("#app");
注:能寫函式儘量寫函式,否則有可能有BUG;
methods:方法
事件處理函式
new Vue({ data (){ return{ n:0 } },template:` <div class="red"> {{n}} <button @click="add">+1</button> </div> `,//add必須寫到methods裡面 methods:{ add(){ this.n+=1 } } }).$mount('#app')
普通函式:methods代替filter
import Vue from "vue"; Vue.config.productionTip = false; new Vue({ data() { return { n: 0,array: [1,2,3,4,5,6,7,8] }; },template: ` <div class=red> {{n}} <button @click="add">+1</button> //事件處理函式 <hr> {{filter()}} //普通函式(JS的filter直接在視圖裡呼叫,每一次更新渲染都會呼叫一次) </div> `,//主動在模板裡面呼叫 methods: { add() { this.n += 1; //事件處理函式 },filter() { return this.array.filter(i => i % 2 === 0); //普通函式 } } }).$mount("#app");
components:方法
使用Vue元件,注意大小寫
(建議用法) 模組化:
新建一個vue檔案Demo.vue,這個vue檔案就是一個元件
在main.js中引入這個vue檔案
在vue例項的components中宣告這是我要用的元件,並且命名為Demo
這樣在這個Vue例項的template中就可以直接使用這個元件<Demo/>
import Vue from "vue"; import Demo from "./Demo.vue"; //引入這個vue檔案 ---檔名最好小寫 元件名最好大寫 Vue.config.productionTip = false; new Vue({ components: { Demo //在vue例項的components中宣告這是我要用的元件,並且命名為Demo //如果元件名就叫Demo,即Demo:Demo,那就寫Demo --ES6縮寫 //components: {Demo},},data() { return { n: 0 }; },template: ` <div class=red> {{n}} <button @click="add">+1</button> <Demo/> //這樣在這個Vue例項的template中就可以直接使用這個元件`<Demo/>` </div> `,methods: { add() { this.n += 1; },} }).$mount("#app");
四個鉤子
created -- 例項出現在記憶體中後觸發 created(){ debugger console.log('這玩意出現在記憶體中') },
mounted-- 例項出現在頁面中(掛載了)後觸發
mounted(){ debugger console.log('這玩意兒已出現在頁面中') },
updated -- 例項更新了後觸發
updated(){ console.log('更新了') console.log(this.n) },//當你+1的時候,能證明他在更新的時候觸發,還可以拿到最新的n
destroyed -- 例項從頁面和記憶體中消亡了後觸發
props:外部屬性
外部來傳值
message
="n"傳入字串
:message
="n"傳入vue例項的this.n資料
:fn="add"
傳入vue例項的this.add函式
示例
補充知識:vue $options初始化
vue例項化時,對$options進行初始化
vue/src/core/instance/init.js
Vue.prototype._init = function (options?: Object) { const vm: Component = this // a uid vm._uid = uid++ let startTag,endTag /* istanbul ignore if */ if (process.env.NODE_ENV !== 'production' && config.performance && mark) { startTag = `vue-perf-start:${vm._uid}` endTag = `vue-perf-end:${vm._uid}` mark(startTag) } // a flag to avoid this being observed vm._isVue = true // merge options if (options && options._isComponent) { // optimize internal component instantiation // since dynamic options merging is pretty slow,and none of the // internal component options needs special treatment. initInternalComponent(vm,options) } else { //初始化$options vm.$options = mergeOptions( resolveConstructorOptions(vm.constructor),options || {},vm ) } /* istanbul ignore else */ if (process.env.NODE_ENV !== 'production') { initProxy(vm) } else { vm._renderProxy = vm } } }
以上這篇Vue的Options用法說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。