Vuejs2 如何向Vue中导入的组件添加单击功能
所以我有一个Vue2应用程序。我已经创建了一个组件“u按钮” 当我导入它并在另一个组件中使用它时,我希望能够向它添加一个单击功能。然而,目前它在u按钮组件上寻找函数,而不是它正在使用的组件 例如,在下面的示例中,如果我单击第一个按钮,什么也不会发生,如果我单击第二个按钮,我会得到控制台日志Vuejs2 如何向Vue中导入的组件添加单击功能,vuejs2,Vuejs2,所以我有一个Vue2应用程序。我已经创建了一个组件“u按钮” 当我导入它并在另一个组件中使用它时,我希望能够向它添加一个单击功能。然而,目前它在u按钮组件上寻找函数,而不是它正在使用的组件 例如,在下面的示例中,如果我单击第一个按钮,什么也不会发生,如果我单击第二个按钮,我会得到控制台日志 <template> <div> <u_button @click="clicked">Click me</u_button>
<template>
<div>
<u_button @click="clicked">Click me</u_button>
<button @click="clicked">Click me</button>
</div>
</template>
<script>
import u_button from '../components/unify/u_button'
export default {
components: {
u_button
},
methods: {
clicked() {
console.log("Working!");
}
}
}
</script>
点击我
点击我
从“../components/unify/u按钮”导入u按钮
导出默认值{
组成部分:{
u_按钮
},
方法:{
点击(){
console.log(“工作!”);
}
}
}
但是,如果我在u按钮组件上添加一个方法,那么它将调用该方法。那么,我怎样才能让我下面的例子起作用呢?我唯一能想到的就是将它包装到另一个div中,并将click函数添加到该div中。但我想知道是否有更好的方法??我也不想用事件来做这件事,因为它很快就会变得一团糟
您可以想象,如果单击一个可重复使用的按钮时总是执行相同的功能,这有点毫无意义。这是因为组件的性质,例如,如果我们有一个(虚拟的)如果框架组件中有一个按钮,并且我们希望在其上检测
单击
事件,那么我们可以命名该事件并在父组件中侦听它;因此,Vue引入了一种称为事件修饰符的功能。例如,在Vue中,我们有.native
修饰符(您可以阅读有关Vue修饰符的更多信息)
现在,要使代码正常工作,您应该在@单击后添加.native
,如下所示:
<u_button @click.native="clicked">Click me</u_button>
点击我
顺便说一句,最好为自己制定一个命名约定,当您的项目越来越大时,它会变得很方便。这是因为组件的性质,例如,如果我们有一个(虚拟的)如果框架组件中有一个按钮,并且我们希望在其上检测单击
事件,那么我们可以命名该事件并在父组件中侦听它;因此,Vue引入了一种称为事件修饰符的功能。例如,在Vue中,我们有.native
修饰符(您可以阅读有关Vue修饰符的更多信息)
现在,要使代码正常工作,您应该在@单击后添加.native
,如下所示:
<u_button @click.native="clicked">Click me</u_button>
点击我
顺便说一句,最好为自己制定一个命名约定,当您的项目越来越大时,它会变得很方便。使用
可能重复使用
可能重复使用