想在不修改原函数的基础上(或者无察觉的基础上)给一些函数加上调用前通知的钩子,查了 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 时修改,两者都可以是修改后的函数。
♪(・ω・)ノ谢谢指教~。
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.