Rumah > hujung hadapan web > View.js > Bagaimana untuk menggunakan getCurrentInstance dalam vue3

Bagaimana untuk menggunakan getCurrentInstance dalam vue3

王林
Lepaskan: 2023-05-16 12:28:06
ke hadapan
2683 orang telah melayarinya

Dalam komponen induk:

1 Import subkomponen dalam persediaan gula sintaks

2. Ikat nilai ref pada label subkomponen

3. . Sediakan secara dalaman daripada Eksport kaedah getCurrentInstance atas permintaan dalam vue

4 Panggil kaedah getCurrentInstance untuk mengeksport proksi

5. kaedah dalam subkomponen

<template>
  <!-- 父组件 -->
  <div>
    <!-- 子组件 -->
    <Child ref="child" />
    <button @click="changeChildren">子组件count+1</button>
  </div>
</template>
 
<script setup lang="ts" name="Father">
import { getCurrentInstance, ComponetInternalInstance,ref } from "vue";
import Child from "./zi.vue";
const child = ref(null)
 // as ComponetInternalInstance表示类型断言,ts时使用。否则报错,proxy为null
const { proxy } = getCurrentInstance() as ComponetInternalInstance;
function changeChildren() {
  proxy.$refs.child.count += 1;
  //也可以使用ref数据.value的形式调用:
  //child.value.count += 1
  console.log(child.value.name)
}
</script>
 
<style scoped></style>
Salin selepas log masuk

main.js

import api from "./utils/api.js"
import StringUtil from "./utils/StringUtil.js"

app.config.globalProperties.api = api;
app.config.globalProperties.StringUtil = StringUtil;
Salin selepas log masuk
import {getCurrentInstance } from &#39;vue&#39;;

const { proxy } = getCurrentInstance();

console.log(proxy.api);
console.log(proxy.StringUtil.isBlank(&#39;1&#39;));
Salin selepas log masuk

Kaedah 1: Dapatkan contoh komponen semasa melalui kaedah getCurrentInstance untuk mendapatkan laluan dan penghala

Html

<template>
  <div>

  </div>
</template>
<script>
import { defineComponent, getCurrentInstance } from &#39;vue&#39;

export default defineComponent({
  name: &#39;About&#39;,
  setup(){
    const { proxy } = getCurrentInstance()
    console.log(proxy.$root.$route)
    console.log(proxy.$root.$router)
    return {}
  }
})
</script>
Salin selepas log masuk

Kaedah 2: Melalui laluan Import useRoute useRouter untuk menggunakan laluan dan penghala.

Html

import { defineComponent } from ‘vue&#39;
import { useRoute, useRouter } from ‘vue-router&#39;
export default defineComponent({
setup () {
const $route = useRoute()
const r o u t e r = u s e R o u t e r ( ) c o n s o l e . l o g ( router = useRouter() console.log(router=useRouter()console.log(route)
console.log($router)
}
})
Salin selepas log masuk

Lampiran: Perangkap besar tentang getCurrentInstance dalam Vue3

Hanya sesuai untuk nyahpepijat semasa pembangunan! Jangan gunakannya dalam persekitaran dalam talian, jika tidak akan ada masalah!

Penyelesaian:

Pilihan 1.

const instance = getCurrentInstance()
console.log(instance.appContext.config.globalProperties)
Salin selepas log masuk

Dapatkan kaedah pemasangan ke global

Pilihan 2.

const { proxy } = getCurrentInstance()
Salin selepas log masuk

Gunakan Di sana tiada masalah dalam talian dengan proksi.

Atas ialah kandungan terperinci Bagaimana untuk menggunakan getCurrentInstance dalam vue3. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
sumber:yisu.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan