Rumah > hujung hadapan web > View.js > Bagaimana untuk menentukan pembolehubah global dalam vue3

Bagaimana untuk menentukan pembolehubah global dalam vue3

PHPz
Lepaskan: 2023-05-12 16:40:14
ke hadapan
7806 orang telah melayarinya

vue3 mentakrifkan pembolehubah global

Dalam vue2, kita tahu bahawa vue2.x menggunakan Vue.prototype.$xxxx=xxx untuk mentakrifkan pembolehubah global, dan kemudian memperoleh pembolehubah global melalui ini.$xxx.

Tetapi dalam vue3, kaedah ini jelas tidak berkesan. Kerana kita tidak boleh mendapatkan ini dalam persediaan dalam vue3, jadi menurut dokumentasi rasmi kami menggunakan kaedah berikut untuk menentukan pembolehubah global:

Mula-mula tulis pembolehubah global yang ingin kami tentukan dalam main.js, seperti Sistem id

app.config.globalProperties.$systemId = "10"
Salin selepas log masuk

Sekarang anda perlu menggunakan pembolehubah ini dalam halaman Anda hanya perlu memperkenalkan getCurrentInstance daripada vue.

import { getCurrentInstance } from "vue";
const systemId = getCurrentInstance()?.appContext.config.globalProperties.$systemId
console.log(systemId);//控制台可以看到输出了10
Salin selepas log masuk

app.config global vue3 tidak boleh digunakan dalam halaman. Penggunaan .globalProperties

globalProperties

  • Jenis: [key: string]: mana-mana

  • Lalai: undefined

  • Penggunaan

Tambahkan sifat global yang boleh diakses daripada mana-mana contoh komponen dalam aplikasi. Sifat komponen diutamakan dalam menamakan konflik.

Ini boleh menggantikan sambungan Vue 2.x Vue.prototype:

// 之前(Vue 2.x)
Vue.prototype.$http = () => {}
 
// 之后(Vue 3.x)
const app = Vue.createApp({})
app.config.globalProperties.$http = () => {}
Salin selepas log masuk

Apabila kita mahu memanggil http dalam komponen, kita perlu menggunakan getCurrentInstance() untuk mendapatkannya.

import { getCurrentInstance, onMounted } from "vue";
export default {
  setup( ) {
    const { ctx } = getCurrentInstance(); //获取上下文实例,ctx=vue2的this
    onMounted(() => {
      console.log(ctx, "ctx");
      ctx.http();
    });
  },
};
Salin selepas log masuk

getCurrentInstance mewakili konteks, iaitu, tika semasa. ctx adalah bersamaan dengan Vue2 ini, tetapi adalah penting untuk ambil perhatian bahawa ctx bukan ini hanya sesuai untuk peringkat pembangunan Jika projek itu dibungkus dan dijalankan pada pelayan pengeluaran, ralat akan berlaku objek pelekap. Penyelesaian kepada masalah ini ialah menggunakan proksi dan bukannya ctx Rujukan kod adalah seperti berikut.

rreeee

Atas ialah kandungan terperinci Bagaimana untuk menentukan pembolehubah global 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