如何为 Vue JS 创建自定义函数,例如created()钩子?
P粉512729862
P粉512729862 2023-09-04 09:39:05
0
1
448
<p>我应该如何创建一个插件,将名为<code>struct</code>的函数(如<code>created()</code>挂钩)添加到所有组件?</p> <p>此外,我希望我的插件能够访问<code>结构</code>返回值。</p> <pre class="brush:js;toolbar:false;">export default { structure() { // Access to context } } </pre> <p>我不得不提一下我使用 Inertia JS。</p>
P粉512729862
P粉512729862

全部回复(1)
P粉848442185

您可以使用 Vue Mixins可组合项

两者都可以为您提供一些共享的函数和变量。但我不知道如何在 Vue 中定义新的钩子,比如 create() 。我必须自己在created() 中启动你的函数。当然,您可以使用 Mixins 覆盖现有的 Vue hooks。

Mixin 非常方便,但不再推荐

Composition API 中没有 created() ,所以你必须使用onBeforeMount()onMounted()

这是一个使用这两种技术的非常基本的示例

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>
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板