1. 程式人生 > 程式設計 >Vue的Options用法說明

Vue的Options用法說明

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用法說明就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支援我們。