gpt4 book ai didi

vue.js - VueJS 方法和函数的区别?

转载 作者:行者123 更新时间:2023-12-03 06:36:48 25 4
gpt4 key购买 nike

我没有找到太多关于这个的东西,使用方法和在脚本标签中声明一个函数有什么区别?
示例.vue

<script>
export default{
methods: {
testfunction1(){
...
}
},
mounted(){
this.testfunction1();
}
}
</script>
相比
<script>
export default{
methods: {
...
},
mounted(){
testFunction1();
}
}

function testFunction1(){
...
}
</script>
PS:如果它们都是合法的,它们的用例是什么? - 什么时候使用两者?

最佳答案

简而言之,testFunctionmethods 之外声明将无法通过 this 访问 Vue 实例.
例如,这将不起作用

function testFunction() {
console.log(this.someDataProperty)
// "this" is the module scope and someDataProperty will not be defined
}

export default {
data: () => ({ someDataProperty: 'whatever' }),
mounted () {
testFunction()
}
}
如果你的函数是纯函数,那么在 methods 之外声明它们是没有问题的。 .

方法也成为组件 API 的一部分,因此您可以在父组件中拥有类似的内容
<ChildComponent ref="child"/>
this.$refs.child.someMethod()
在外部声明的函数 methods将无法以这种方式使用。

ssc-hrep3 提到的另一个区别是只能从组件的模板中调用方法
<button @click="someMethod()">Click me!</button>

关于vue.js - VueJS 方法和函数的区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62868495/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com