成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

20190604-Vue的生命周期

OpenDigg / 909人閱讀

摘要:銷毀前組件實例銷毀前執(zhí)行的方法。銷毀后組件銷毀后,調用的方法,對的改變不會再觸發(fā)函數(shù)周,實例已經(jīng)解除事件監(jiān)聽和綁定,但結構依然存在。掛在完成后的生命周期鉤子注冊。生產(chǎn)版本設為可以啟用檢查。的全局語法用法在下次更新循環(huán)結束后執(zhí)行延遲回調。

什么是生命周期?

每個Vue實例在被創(chuàng)建時都經(jīng)過了一系列的初始化過程

設置數(shù)據(jù)監(jiān)聽

編譯模板

將實例掛載到DOM

數(shù)據(jù)變化時更新DOM

在這一系列過程中,也會運行一些「生命周期鉤子」的函數(shù),用在給開發(fā)者在不同階段添加自己的代碼的機會。

「created」鉤子,在一個實例被創(chuàng)建后執(zhí)行代碼
new Vue({
  data: {
    a: 1
  },
  created: function () {
    // `this` 指向 vm 實例
    console.log("a is: " + this.a)
  }
})
// => "a is: 1"
不要在選項屬性或回調上使用箭頭函數(shù),比如 created: () => console.log(this.a) 或 vm.$watch("a", newValue => this.myMethod())。因為箭頭函數(shù)并沒有 this,this 會作為變量一直向上級詞法作用域查找,直至找到為止,經(jīng)常導致 Uncaught TypeError: Cannot read property of undefined 或 Uncaught TypeError: this.myMethod is not a function 之類的錯誤。

參考 Vue實例

通俗的講:就是在.Vue從加載前到銷毀后,這一些系列過程中,有特定的階段fn可以提供我們開發(fā)者來進行操作。

階段
鉤子函數(shù)方法 觸發(fā)階段 操作
beforeCreate 創(chuàng)建前 組件實例剛被創(chuàng)建,組件屬性計算前,數(shù)據(jù)對象data都未定義,未初始化
created 創(chuàng)建后 組件實例創(chuàng)建完成,屬性已經(jīng)綁定,數(shù)據(jù)對象data已經(jīng)定義存在,DOM沒為生成,$el未存在
beforeMount 掛載前 Vue實例的$el和data都已經(jīng)初始化完成,掛在前為虛擬的dom節(jié)點,模板還沒有渲染到HTML頁面上去,data.message未替換。
mounted 掛載后 Vue實例掛載完成,模板已經(jīng)渲染到HTML中,dota.message成功渲染。這個階段可以做一些ajax請求操作,mounted在周期中只會執(zhí)行一次。
beforeUpdate 更新前 當dota更新之前,會觸發(fā)beforeUpdate方法。
updated 更新后 當data更新完成后,觸發(fā)updated方法。
beforeDestory 銷毀前 Vue組件實例銷毀前執(zhí)行的方法。
destroyed 銷毀后 組件銷毀后,調用的方法,對data的改變不會再觸發(fā)函數(shù)周,vue實例已經(jīng)解除事件監(jiān)聽和dom綁定,但dom結構依然存在。

示例
import Axios from "axios"       // 這是一個輕量級的ajax庫,import是es6模塊導入的語法。
export default {                // 這是一個vue的模塊,后面講奧。
  name: "app",
  components: {
  },
  data: function () {
    return {
      list: []
    }
  },
  mounted: function () {          // 掛在完成后的生命周期鉤子注冊。
    this.$nextTick(function () {  // 等待下一次更新完成后執(zhí)行業(yè)務處理代碼。
      Axios.get("/api/menulist", {// 將回調延遲到下次 DOM 更新循環(huán)之后執(zhí)行。在修改數(shù)據(jù)之后立即使用它,然后等待 DOM 更新
        params: {
        }
      }).then(function (res) {
        this.list = res.data
      }.bind(this))
    })
  }
}
Vue實例的全局配置

silent

類型:boolean

默認值:false

用法:

Vue.config.silent = true
// 取消Vue所有的日志與警告

optionMergeStrategies

類型: { [key: string]: Function }

默認值: {}

用法:

Vue.config.optionMergeStrategies._my_option=function( parent,child,vm){
    return child+1
}
const Profile = Vue.extend({
    _my_option: 1
})
Profile.options._my_option = 2
// 自定義合并策略選項
// 合并策略選項分別接受第一個參數(shù)作為父實例,第二個參數(shù)為子實例,Vue實例上下文被作為第三個參數(shù)傳入。

devtools

類型:boolean

默認值:true

用法:

// 務必在加載 Vue 之后,立即同步設置以下內(nèi)容Vue.config.devtools = true
// 配置是否允許 vue-devtools 檢查代碼。開發(fā)版本默認為 true,生產(chǎn)版本默認為 false。生產(chǎn)版本設為 true 可以啟用檢查。

Vue的全局API

Vue.nextTick

語法:Vue.nextTick([callback, context])
{Function}[callback]
{Object}[callback]

用法:

在下次DOM更新循環(huán)結束后執(zhí)行延遲回調。在修改數(shù)據(jù)之后立即使用這個方法,獲取更新后的DOM

// 修改數(shù)據(jù)
vm.msg = "msg"
// DOM未更新
Vue.nexTick(function() {
    // DOM更新了
    // 執(zhí)行操作
})

Vue.set

語法:Vue.set( object, key, value)

參數(shù):

{Object} object
{String} key
{any} value

用法:

設置對象數(shù)據(jù)。如果對象是響應式的,確保屬性被創(chuàng)建后也是響應式的,同時觸發(fā)視圖更新,這個方法主要用于避開Vue不能檢測屬性被添加的限制。注意對象不能使Vue示例,或者Vue實例的根數(shù)據(jù)對象。

Vue.complie

語法:Vue.compile(template)

參數(shù):

{string} template

用法:

// 在render函數(shù)中編譯模板字符串
// 在獨立構建時有效
var res = Vue.Compile(`
{{ msg }}
`) new Vuew({ data:{ msg:"hello" }, render:res.render, staticRenderFns:res.staticRenderFns })

更多的API和用法請看-> API-Vue

文章版權歸作者所有,未經(jīng)允許請勿轉載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉載請注明本文地址:http://systransis.cn/yun/104408.html

相關文章

  • Maven 生命周期

    摘要:生命周期生命周期是為了對所有的構建過程進行抽象和統(tǒng)一,開發(fā)了一套高度完善的易擴展的生命周期。生命周期本身不做任何實際的工作,實際的任務都交給插件來完成。生命周期步驟在中,有三套相互獨立的生命周期,分別是和。 Maven 生命周期 Maven 生命周期是為了對所有的構建過程進行抽象和統(tǒng)一,開發(fā)了一套高度完善的、易擴展的生命周期。這個生命周期包含了項目的清理、初始化、編譯、測試、打包、集成...

    CoreDump 評論0 收藏0
  • vue生命周期

    摘要:接觸兩個月了,今天說一說里邊很重要的生命周期,記得最開始接觸的時候我問了一下周邊的同事,這些生命周期都有什么用,得到的答案是里邊可以操作屬性,你記住就完事了,于是乎。。。 接觸Vue兩個月了,今天說一說vue里邊很重要的生命周期,記得最開始接觸的時候我問了一下周邊的同事,這些生命周期都有什么用,得到的答案是mounted里邊可以操作屬性,你記住mounted就完事了,于是乎。。。 數(shù)據(jù)...

    godlong_X 評論0 收藏0
  • 生命周期感知組件處理生命周期

    摘要:生命周期感知組件會執(zhí)行操作來響應另一個組件如和的生命周期狀態(tài)的改變。使用兩個主要枚舉來追蹤其關聯(lián)組件的生命周期狀態(tài)從和類中分發(fā)的生命周期事件,這些事件映射到和的回調事件中。 生命周期感知組件會執(zhí)行操作來響應另一個組件(如 activity 和 fragment)的生命周期狀態(tài)的改變。這些組件可以幫助你生成組織性更好、更輕量級、更易于維護的代碼。 一個常見的模式是在 activity 和...

    acrazing 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<