Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 在Vue中调用方法时使用括号_Javascript_Vue.js_Vuejs2 - Fatal编程技术网

Javascript 在Vue中调用方法时使用括号

Javascript 在Vue中调用方法时使用括号,javascript,vue.js,vuejs2,Javascript,Vue.js,Vuejs2,在Vue中,为什么可以同时为侦听器分配()和不分配() newvue({ el:“应用程序”, 数据:{ 用户名:“你好,世界!” }, 方法:{ 更改名称:函数(e){ this.userName=“Name”+Math.random(); } } }) {{userName}} 这在中得到了很好的解释 基本上,事件处理程序可以是 方法名称,如@input=“changeName” 有效的Javascript语句,如@input=“changeName()”或@input=“userNa

在Vue中,为什么可以同时为侦听器分配
()
和不分配
()

newvue({
el:“应用程序”,
数据:{
用户名:“你好,世界!”
},
方法:{
更改名称:函数(e){
this.userName=“Name”+Math.random();
}
}
})

{{userName}}


这在中得到了很好的解释

基本上,事件处理程序可以是

  • 方法名称,如
    @input=“changeName”
  • 有效的Javascript语句,如
    @input=“changeName()”
    @input=“userName='Name'+Math.random()”
Vue会自动执行检查以检测是哪种情况

如果您感兴趣,请在查看此核心代码


这两种情况在Vue中都是有效的。但也有一些不同之处

引述:

@input=“changeName”

事件对象作为第一个事件传递给事件处理程序 仅将方法名称绑定为事件处理程序时的参数

@input=“changeName()”

或者,实际的方法调用可以用作事件处理程序。 这允许您将任何自定义参数传递给该方法

var handlerCode = isMethodPath
  ? ("return " + (handler.value) + "($event)")
  : isFunctionExpression
    ? ("return (" + (handler.value) + ")($event)")
    : handler.value;