背景:
想在不修改原函数的基础上(或者无察觉的基础上)给一些函数加上调用前通知的钩子,查了 Stack Overflow 得到的也是修改原函数的。在测试时发现好像没有效果,但查看组件中的this中的 VNode 信息那个函数确实已经更改,后来想了想是不是绑定方法有问题于是试了试带括号的,结果发现真的有问题...
测试代码:
<template>
<div>
<a @click="test()">click</a>
</div>
</template>
<script>
export default {
methods: {
test () {
console.log(1)
}
},
mounted: function () {
this.test = function () {
console.log(2)
}
}
}
</script>
如果 <a @click="test">click</a> 未带括号,调用的函数是 methods 的旧函数,打印 1,
如果 <a @click="test()">click</a> 带上括号,那调用的就是新函数,打印 2。
问题:
有能直接给函数加调用前通知的钩子的方法没.
一般写代码对于无参数的写第一种还是第二种.
这两者还有什么坑点需要注意.
想两者兼容有什么办法吗.
所做尝试:
如果是 created 时修改,两者都可以是修改后的函数。
♪(・ω・)ノ谢谢指教~。
