首页 > 解决方案 > data() 函数是否旨在提供除保持反应属性之外的功能?

问题描述

我看到一个 Vue 组件,程序员(不精通 Vue,他没有意识到自己在做什么并不常见)使用该data()函数来执行更多任务,而不仅仅是返回data结构:

<script>
    export default {
        name: "testing",
        data() {
            console.log("hello world")
            return {
                myvar: null
            }
        }
    }
</script>

data()除了处理反应属性之外,还应该具有额外的功能吗?

标签: vue.jsvue-component

解决方案


有可能产生副作用,data但它不是为此而设计的。它的唯一目的是为实例定义初始数据以使其具有反应性。

databeforeCreate在和created生命周期钩子之间执行。如果某些逻辑应该在数据可用之前进行评估,它属于beforeCreate.

由于console.log("hello world")副作用不会影响组件,它除了通知data被调用者之外没有任何用途(这是已知的,但可以通过设置断点来确认)。


推荐阅读