一区二区日本_久久久久久久国产精品_无码国模国产在线观看_久久99深爱久久99精品_亚洲一区二区三区四区五区午夜_日本在线观看一区二区

Vue3中使用this的詳細(xì)教程

目錄 Vue3使用this 具體使用如下: 補(bǔ)充:Vue3.0中this的替代方法 方法一 方法二(推薦使用) 總結(jié) Vue3使用this Vue2升級(jí)到Vue3,有很大的改變,其中最明顯的就是以前的this,在新版本中無法
目錄
  • Vue3使用this
  • 具體使用如下:
  • 補(bǔ)充:Vue3.0中this的替代方法
    • 方法一
    • 方法二(推薦使用)
  • 總結(jié)

    Vue3使用this

    Vue2升級(jí)到Vue3,有很大的改變,其中最明顯的就是以前的this,在新版本中無法使用了,這是為什么呢?

    官方是這樣說的:在?setup()?內(nèi)部,this?不會(huì)是該活躍實(shí)例的引用(即不指向vue實(shí)例),因?yàn)?setup()?是在解析其它組件選項(xiàng)之前被調(diào)用的,所以?setup()?內(nèi)部的?this?的行為與其它選項(xiàng)中的?this?完全不同。這在和其它選項(xiàng)式?API?一起使用?setup()?時(shí)可能會(huì)導(dǎo)致混淆。

    因此setup函數(shù)中不能使用this。所以Vue為了避免我們錯(cuò)誤的使用,直接將setup函數(shù)中的this修改成了 undefined

    所以想要在Vue3中使用this, Vue為我們提供了getCurrentInstance()方法,這個(gè)方法返回了ctx和proxy。

    具體使用如下:

    <script setup>
        import {getCurrentInstance} from '@vue/runtime-core'
        const currentInstance = ref()
        onMounted(() => {
            /**
             * 此處這樣使用時(shí)因?yàn)閂ue3不同于Vue2,在 Vue3的setup中我們是無法訪問到this的,所以我們需要借助一個(gè)方法,
             * 那就是getCurrentInstance,該方法返回了當(dāng)前的實(shí)例對(duì)象
             *
             * 注意!!!!!
             * 不要把該函數(shù)當(dāng)作是optionsApi中來獲取 this 使用。
             * 該方法只在 setup、生命周期函數(shù)中有效,在方法中是無效的
             * */
            currentInstance.value = getCurrentInstance()
        });
    </script>

    這樣我們就可以借助currentInstance 來完成在Vue2中this的使用場(chǎng)景了

    補(bǔ)充:Vue3.0中this的替代方法

    • 在vue3中,新的組合式API中沒有this,我們可以通過以下方法替代this
    • setup 在生命周期 beforecreate 和 created 前執(zhí)行,此時(shí) vue 對(duì)象還未創(chuàng)建,所以我們無法使用 this

    方法一

    getCurrentInstance() 方法,獲取當(dāng)前組件的實(shí)例,通過 ctx 或 proxy 屬性獲得當(dāng)前上下文,從而就能在setup中使用router和vuex

    import { getCurrentInstance } from "vue";
    export default {
    	setup() {
        	let { proxy } = getCurrentInstance();
        	console.log(proxy)
        }
    }

    getCurrentInstance 方法去獲取組件實(shí)例來完成一些主要功能,在項(xiàng)目打包后,會(huì)報(bào)錯(cuò)(不推薦使用)

    方法二(推薦使用)

    import { useStore } from 'vuex'
    import { useRoute, useRouter } from 'vue-router'
    export default {
      setup () {
        const store = useStore()
    	const route = useRoute()
        const router = useRouter()
        return {
          // 訪問 state  函數(shù)
          count: computed(() => store.state.count),
          // 訪問 getter函數(shù)
          double: computed(() => store.getters.double)
    	  // mutation
          increment: () => store.commit('increment'),
          // 使用 action
          asyncIncrement: () => store.dispatch('asyncIncrement')
        }
      }
    }

    總結(jié)

    到此這篇關(guān)于Vue3中使用this的文章就介紹到這了,更多相關(guān)Vue3使用this內(nèi)容請(qǐng)搜索技圈網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持技圈網(wǎng)!

    聲明:所有內(nèi)容來自互聯(lián)網(wǎng)搜索結(jié)果,不保證100%準(zhǔn)確性,僅供參考。如若本站內(nèi)容侵犯了原著者的合法權(quán)益,可聯(lián)系我們進(jìn)行處理。
    發(fā)表評(píng)論
    更多 網(wǎng)友評(píng)論0 條評(píng)論)
    暫無評(píng)論

    返回頂部

    主站蜘蛛池模板: 国产中文在线观看 | 黄色毛片网站在线观看 | 亚洲欧美久久 | 波多野结衣二区 | 日本一区二区视频 | 日韩免费网站 | 国产精品视频播放 | 午夜精| 操久久久| www.亚洲区 | 九九亚洲 | 天天爽一爽 | 在线免费视频一区 | 欧美日韩国产一区二区三区 | 亚洲精品黄 | 久久99网| 成人av电影免费在线观看 | 免费观看成人性生生活片 | 日韩av成人在线 | 成人精品视频在线观看 | 欧美日韩精选 | 国产做a爱免费视频 | 最新av在线网址 | 国产一区二区三区四区三区四 | 国产成人一区二区 | 国产亚洲精品精品国产亚洲综合 | 毛片视频网站 | 免费大黄视频 | 粉嫩一区二区三区性色av | 狠狠操天天干 | 日本精品视频一区二区 | 国产99免费 | 日韩欧美字幕 | 真人毛片 | 日本激情一区二区 | 免费一区二区三区在线视频 | 免费黄色的视频 | 亚洲成人一区 | 国产精品不卡一区 | 成人免费观看男女羞羞视频 | 久久99精品久久久久婷婷 |