Bagaimana untuk mencipta fungsi tersuai untuk Vue JS seperti cangkuk create()?
P粉512729862
P粉512729862 2023-09-04 09:39:05
0
1
440
<p>Bagaimanakah saya harus membuat pemalam yang menambahkan fungsi bernama <code>struct</code> (seperti <code>created()</code> cangkuk) pada semua komponen? </p> <p>Selain itu, saya mahu pemalam saya mempunyai akses kepada <kod>struktur</kod> </p> <pre class="brush:js;toolbar:false;">eksport lalai { struktur() { // Akses kepada konteks } } </pra> <p>Saya perlu menyebut bahawa saya menggunakan Inertia JS. </p>
P粉512729862
P粉512729862

membalas semua(1)
P粉848442185

Anda boleh menggunakan Vue Mixins atau Composables.

Kedua-duanya boleh memberi anda beberapa fungsi dan pembolehubah yang dikongsi. Tetapi saya tidak tahu bagaimana untuk menentukan cangkuk baharu dalam Vue seperti create() . Saya perlu memulakan fungsi anda dalam create() sendiri. Sudah tentu, anda boleh menggunakan mixin untuk mengatasi cangkuk Vue sedia ada.

Mixin sangat mudah, tetapi tidak lagi disyorkan

Tiada dicipta() dalam Composition API created() ,所以你必须使用onBeforeMount()onMounted(), jadi anda mesti menggunakan onBeforeMount() atau onMounted()

Berikut adalah contoh yang sangat asas menggunakan kedua-dua teknik

const { createApp, ref, onBeforeMount } = Vue;

const myMixin = {
  created() {
    console.log('myMixin: created()')
  }
}

const myComposable = () => {
    onBeforeMount(() => {
       console.log('myComposable: onBeforeMount()')    
    })
    const myFunction = () => console.log('myFunction()')    
    return { myFunction }
}

const App = {
  setup() {
    const { myFunction } = myComposable()
    return  { myFunction }
  },
  mixins: [myMixin]
}

const app = createApp(App)
app.mount('#app')
<div id="app">
  <button @click="myFunction()">myFunction()</button>
</div>
<script src="https://unpkg.com/vue@3/dist/vue.global.prod.js"></script>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan