vue3沒有this的解決方案
vue3沒有this怎么辦
在vue3中,新的組合式API中沒有this,那我們?nèi)绻枰玫?code>this怎么辦?
解決方法
getCurrentInstance 方法獲取當(dāng)前組件的實例,然后通過 ctx 或 proxy 屬性獲得當(dāng)前上下文,這樣我們就能在setup中使用router和vuex了
import { getCurrentInstance } from "vue";
export default {
setup() {
let { proxy } = getCurrentInstance();
proxy.$axios(...)
proxy.$router(...)
}
}但是
但是,不建議使用,如果要使用router和vuex,推薦這樣用:
import { computed } from 'vue'
import { useStore } from 'vuex'
import { useRoute, useRouter } from 'vue-router'
export default {
setup () {
const store = useStore()
const route = useRoute()
const router = useRouter()
return {
// 在 computed 函數(shù)中訪問 state
count: computed(() => store.state.count),
// 在 computed 函數(shù)中訪問 getter
double: computed(() => store.getters.double)
// 使用 mutation
increment: () => store.commit('increment'),
// 使用 action
asyncIncrement: () => store.dispatch('asyncIncrement')
}
}
}大家不要依賴 getCurrentInstance 方法去獲取組件實例來完成一些主要功能,否則在項目打包后,一定會報錯的。
總結(jié)
以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。
相關(guān)文章
Vue3+TS實現(xiàn)動態(tài)路由權(quán)限的示例詳解
當(dāng)我們在開發(fā)一個大型的前端應(yīng)用時,動態(tài)路由權(quán)限是一個必不可少的功能,本文將介紹如何使用Vue 3和TypeScript來實現(xiàn)動態(tài)路由權(quán)限,希望對大家有所幫助2024-01-01
Vue異步請求導(dǎo)致頁面數(shù)據(jù)渲染錯誤問題解決方法示例
這篇文章主要為大家介紹了Vue中異步請求導(dǎo)致頁面數(shù)據(jù)渲染錯誤問題解決方法示例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-09-09
vue中實現(xiàn)先請求數(shù)據(jù)再渲染dom分享
下面小編就為大家分享一篇vue中實現(xiàn)先請求數(shù)據(jù)再渲染dom分享,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-03-03

