使用vue绑定函数其实很简单 直接 @click='function1' 就可以了。
不过在动态绑定函数的时候踩到了一个坑,比如
<div @click="isTrue ? function1:null ">
我是内容
</div>
data(){
isTrue :true
},
methods:{
function1 () {
console.log(123)
}
}
很明显,这个div绑定了function1 函数,但是这样根据条件绑定的函数并不能执行;
究其原因其实很简单,那就是click绑定的内容会被vue当做一段代码来执行,如果直接绑定了函数,那么在事件触发的时候回直接执行这个函数,相当于调用 function1()
那么这个三元运算绑定的函数不执行的原因也就明了了。事件触发的时候相当于执行了这个三元运算,返回了function1函数的内容(只是获得函数内容,没有执行)
那么解决办法也就出现了,在三元运算的true条件里 返回函数的调用而非函数名,如下:
<div @click="isTrue ? function1():null ">
我是内容
</div>
data(){
isTrue :true
},
methods:{
function1 () {
console.log(123)
}
}