gpt4 book ai didi

javascript - VueJS 发送到 VueJS 外部的函数

转载 作者:行者123 更新时间:2023-11-28 14:53:26 26 4
gpt4 key购买 nike

我试图将我的 VueJS 组件中的某些内容发送到位于包含该组件的 html 页面中的函数。我是否遗漏了什么,或者这是不可能的?

在我的组件中作为方法:

insert: function(){
this.$emit('insertItem', 123);
}

在包含组件的页面中:

<medialibrary @insertItem="insertItem(arg);"></medialibrary>


<script>
function insertItem(arg){
console.log('insertItem');
console.log(arg);
}
</script>

最佳答案

这实际上比乍一看更有可能。如果该函数是全局的(特别是对父 Vue 可见),则即使它不是 Vue 的方法,也可以由 Vue 调用。 (创建一个调用全局函数的方法可以说是一个更好的主意。)

您的代码的主要困难是驼峰命名法,而它应该是短横线命名法。

如果您希望 insertItem$emit 获取 arg,HTML 应该只给出函数名称,Vue 将采用小心传递参数:

<medialibrary id="app" @insert-item="insertItem"></medialibrary>

我的代码片段使用您的原始代码,该代码提供来自父 Vue 的 arg。

function insertItem(arg) {
console.log('insertItem');
console.log(arg);
}

new Vue({
el: '#app',
data: {
arg: 'hi there'
},
components: {
medialibrary: {
template: '<div><button @click="insert">Insert</button></div>',
methods: {
insert() {
console.log("Emit");
this.$emit('insert-item', 123);
}
}
}
}
});
<script src="//cdnjs.cloudflare.com/ajax/libs/vue/2.3.2/vue.min.js"></script>
<medialibrary id="app" @insert-item="insertItem(arg);"></medialibrary>

关于javascript - VueJS 发送到 VueJS 外部的函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43755226/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com