VUE3中的函數(shù)的聲明和使用
VUE3函數(shù)的聲明和使用
在了解了響應(yīng)式數(shù)據(jù)如何使用之后,接下來就要開始了解函數(shù)了。
在Vue2中函數(shù)
通常是作為當(dāng)前組件實(shí)例上的方法在 methods 里聲明,然后再在 mounted 等生命周期里調(diào)用,或者是在模板里通過 Click 等行為觸發(fā)
由于組件內(nèi)部經(jīng)常需要使用 this 獲取組件實(shí)例,因此不能使用箭頭函數(shù)。
export default { data: () => { return { num: 0, } }, mounted: function () { this.add() }, methods: { // 不可以使用 `add: () => this.num++` add: function () { this.num++ }, }, }
在Vue3則靈活了很多
可以使用普通函數(shù)、 Class 類、箭頭函數(shù)、匿名函數(shù)等等進(jìn)行聲明,可以將其寫在 setup 里直接使用,也可以抽離在獨(dú)立的 .js / .ts 文件里再導(dǎo)入使用。
需要在組件創(chuàng)建時(shí)自動(dòng)執(zhí)行的函數(shù),其執(zhí)行時(shí)機(jī)需要遵循 Vue 3 的生命周期,需要在模板里通過 @click、@change 等行為觸發(fā),和變量一樣,需要把函數(shù)名在 setup 里進(jìn)行 return 出去。
下面是一個(gè)簡(jiǎn)單的例子
方便開發(fā)者更直觀地了解:
<template> <p>{{ msg }}</p> <!-- 在這里點(diǎn)擊執(zhí)行 `return` 出來的方法 --> <button @click="updateMsg">修改MSG</button> </template>
<script lang="ts"> import { defineComponent, onMounted, ref } from 'vue' export default defineComponent({ setup() { const msg = ref<string>('Hello World!') // 這個(gè)要暴露給模板使用,必須 `return` 才可以使用 function updateMsg() { msg.value = 'Hi World!' } // 這個(gè)要在頁面載入時(shí)執(zhí)行,無需 `return` 出去 const init = () => { console.log('init') } onMounted(() => { init() }) return { msg, changeMsg, } }, }) </script>
總結(jié)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue Element前端應(yīng)用開發(fā)之常規(guī)的JS處理函數(shù)
在我們使用Vue Element處理界面的時(shí)候,往往碰到需要利用JS集合處理的各種方法,如Filter、Map、reduce等方法,也可以涉及到一些對(duì)象屬性賦值等常規(guī)的處理或者遞歸的處理方法,本篇隨筆列出一些在VUE+Element 前端開發(fā)中經(jīng)常碰到的JS處理場(chǎng)景,供參考學(xué)習(xí)。2021-05-05解決vue?eslint開發(fā)嚴(yán)格模式警告錯(cuò)誤的問題
這篇文章主要介紹了解決vue?eslint開發(fā)嚴(yán)格模式警告錯(cuò)誤的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04Vue項(xiàng)目頁面跳轉(zhuǎn)時(shí)瀏覽器窗口上方顯示進(jìn)度條功能
這篇文章主要介紹了Vue項(xiàng)目頁面跳轉(zhuǎn)時(shí)瀏覽器窗口上方顯示進(jìn)度條功能,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2020-03-03Vue動(dòng)態(tài)修改頁面Title(瀏覽器頁簽名稱)的三種方法
在開發(fā) Vue 項(xiàng)目時(shí),我們經(jīng)常需要根據(jù)不同的頁面動(dòng)態(tài)修改瀏覽器的頁簽標(biāo)題(title),那么,如何在 Vue 項(xiàng)目中實(shí)現(xiàn)動(dòng)態(tài)修改 document.title 呢?本文將介紹三種實(shí)用方法,并結(jié)合代碼示例,助你輕松實(shí)現(xiàn),需要的朋友可以參考下2025-03-03