首頁 > web前端 > Vue.js > 主體

Vue3中的生命週期鉤子函數詳解:全面掌握Vue3生命週期的應用

王林
發布: 2023-06-19 08:12:06
原創
8787 人瀏覽過

Vue3中的生命週期鉤子函數詳解:全面掌握Vue3生命週期的應用

Vue作為一款流行的JavaScript框架,一直以來都受到廣泛的關注和熱愛。而隨著Vue3的發布,其生命週期鉤子函數也有了一些變化與最佳化。了解Vue3的生命週期鉤子函數,對於前端開發人員而言,是非常重要的。本文將詳細介紹Vue3中的生命週期鉤子函數及其應用。

Vue3中的生命週期鉤子函數

Vue3中的生命週期鉤子函數同樣分為四個階段:建立、掛載、更新、銷毀。以下我們將詳細介紹Vue3中這四個階段的生命週期鉤子函數及其使用方法。

建立階段

在建立階段中,Vue3提供了兩個生命週期鉤子函數:setup()onBeforeMount()

setup()

setup()是Vue3引入的新的生命週期鉤子函數,在Vue3中程式碼中必須要有這個函數,setup()函數會在元件初始化的時候執行,其主要目的是用來設定元件的資料和方法等。

setup()函數的使用方式與Vue2.x中的datamethods類似,我們可以在setup( )函數中宣告元件需要使用的資料和方法,如下所示:

<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  setup() {
    const message = 'Hello, Vue3!'
    return {
      message
    }
  }
}
</script>
登入後複製

上面的範例中,我們使用了const關鍵字宣告了一個名為message的變量,該變數的值為'Hello, Vue3!',然後將其返回,在模板中使用{{ message }}就可以渲染出文字內容。

onBeforeMount()

onBeforeMount()生命週期鉤子函數與Vue2.x中的beforeMount()類似,表示元件在掛載到DOM之前的事件,它會在setup()函數執行之後執行。

下面是一個使用onBeforeMount()的範例:

<template>
  <div>{{ message }}</div>
</template>

<script>
export default {
  setup() {
    const message = 'Hello, Vue3!'
    return {
      message
    }
  },
  onBeforeMount() {
    console.log('组件挂载前执行')
  }
}
</script>
登入後複製

上面的範例中,onBeforeMount()函數會在元件模板掛載到DOM之前執行,在控制台輸出元件掛載前執行

掛載階段

在掛載階段中,Vue3提供了兩個生命週期鉤子函數:onMounted()onBeforeUpdate()

onMounted()

onMounted()與Vue2.x中的mounted()類似,表示元件掛載到DOM後的事件,它會在setup()函數執行之後執行。

下面是一個使用onMounted()的範例:

<template>
  <div ref="box">{{ message }}</div>
</template>

<script>
import { onMounted, ref } from 'vue'

export default {
  setup() {
    const message = ref('Hello, Vue3!')

    onMounted(() => {
      console.log('组件已经挂载到DOM上')
      console.log(this.$refs.box)
    })

    return {
      message
    }
  }
}
</script>
登入後複製

上面的範例中,我們使用ref函數建立了一個 message變量,並在模板中使用{{ message }}渲染出文本,然後使用onMounted()函數,在元件掛載之後輸出元件已經掛載到DOM上,以及元件中的div元素的參考。

onBeforeUpdate()

onBeforeUpdate()與Vue2.x中的beforeUpdate()類似,表示元件在更新之前的事件,它會在元件的狀態改變之後、視圖開始重新渲染之前執行。

下面是一個使用onBeforeUpdate()的範例:

<template>
  <div>{{ message }}</div>
  <button @click="changeMessage">修改消息</button>
</template>

<script>
import { onBeforeUpdate, ref } from 'vue'

export default {
  setup() {
    const message = ref('Hello, Vue3!')

    const changeMessage = () => {
      message.value = 'Hello, World!'
    }

    onBeforeUpdate(() => {
      console.log('组件即将更新,当前消息为:' + message.value)
    })

    return {
      message,
      changeMessage
    }
  }
}
</script>
登入後複製

上面的範例中,我們使用ref函數建立了一個 message變量,並在模板中使用{{ message }}渲染出文本,然後使用onBeforeUpdate()函數,在元件更新之前輸出當前訊息的值。

更新階段

在更新階段中,Vue3提供了兩個生命週期鉤子函數:onUpdated()onDeactivated()

onUpdated()

onUpdated()與Vue2.x中的updated()類似,表示元件在更新後的事件,它會在元件的狀態改變之後、視圖重新渲染之後執行。

下面是一個使用onUpdated()的範例:

<template>
  <div>{{ message }}</div>
  <button @click="changeMessage">修改消息</button>
</template>

<script>
import { onUpdated, ref } from 'vue'

export default {
  setup() {
    const message = ref('Hello, Vue3!')

    const changeMessage = () => {
      message.value = 'Hello, World!'
    }

    onUpdated(() => {
      console.log('组件已更新,当前消息为:' + message.value)
    })

    return {
      message,
      changeMessage
    }
  }
}
</script>
登入後複製

上面的範例中,我們使用ref函數建立了一個 message變量,並在模板中使用{{ message }}渲染出文本,然後使用onUpdated()函數,在元件更新之後輸出當前訊息的值。

onDeactivated()

onDeactivated()與Vue2.x中的deactivated()類似,表示元件被啟動後的事件,它會在元件從啟動狀態切換到非啟動狀態時執行。

下面是一個使用onDeactivated()的範例:

<template>
  <div>{{ message }}</div>
</template>

<script>
import { onDeactivated, ref } from 'vue'

export default {
  setup() {
    const message = ref('Hello, Vue3!')

    onDeactivated(() => {
      console.log('组件被激活')
    })

    return {
      message
    }
  }
}
</script>
登入後複製

上面的範例中,我們使用ref#函數建立了一個 message變量,並在模板中使用{{ message }}渲染出文本,然後使用onDeactivated()函數,在組件被激活時輸出組件被啟用設定.

銷毀階段

在銷毀階段中,Vue3提供了一個生命週期鉤子函數:onUnmounted()

onUnmounted()

onUnmounted()与Vue2.x中的beforeDestroy()类似,表示组件销毁的事件,它会在组件被销毁之前执行。

下面是一个使用onUnmounted()的例子:

<template>
  <div>{{ message }}</div>
</template>

<script>
import { onUnmounted, ref } from 'vue'

export default {
  setup() {
    const message = ref('Hello, Vue3!')

    onUnmounted(() => {
      console.log('组件被销毁')
    })

    return {
      message
    }
  }
}
</script>
登入後複製

上面的例子中,我们使用ref函数创建了一个message变量,并在模板中使用{{ message }}渲染出文本,然后使用onUnmounted()函数,在组件被销毁时输出 组件被销毁

总结

本文介绍了Vue3中的生命周期钩子函数,它们包括创建阶段的setup()onBeforeMount(),挂载阶段的onMounted()onBeforeUpdate(),更新阶段的onUpdated()onDeactivated(),以及销毁阶段的onUnmounted()。掌握这些生命周期钩子函数,可以帮助我们更好地理解Vue3组件的生命周期,并且在开发Vue3应用时更加得心应手。

以上是Vue3中的生命週期鉤子函數詳解:全面掌握Vue3生命週期的應用的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板