vue.js - data() 函数是否旨在提供除保持反应属性之外的功能?
问题描述
我看到一个 Vue 组件,程序员(不精通 Vue,他没有意识到自己在做什么并不常见)使用该data()
函数来执行更多任务,而不仅仅是返回data
结构:
<script>
export default {
name: "testing",
data() {
console.log("hello world")
return {
myvar: null
}
}
}
</script>
data()
除了处理反应属性之外,还应该具有额外的功能吗?
解决方案
有可能产生副作用,data
但它不是为此而设计的。它的唯一目的是为实例定义初始数据以使其具有反应性。
data
beforeCreate
在和created
生命周期钩子之间执行。如果某些逻辑应该在数据可用之前进行评估,它属于beforeCreate
.
由于console.log("hello world")
副作用不会影响组件,它除了通知data
被调用者之外没有任何用途(这是已知的,但可以通过设置断点来确认)。
推荐阅读
- python - 比较python中字符串的第一个和最后一个字符
- html - 卡片图片在排成一行时不会显示
- mysql - 在 MySQL 8 SELECT 语句的单个列中使用多个 REGEXP_REPLACE 调用
- jspdf - JsPDF - html2pdf 中的 btoa() - PDF 质量问题
- python - 我可以在子解析器参数之后向子解析器添加公共参数吗?
- java - 如何解决 arquillian 静态变量 = null
- c# - 如何从特定参考中找到解决方案正在使用哪些类
- arrays - Jmeter JSON响应转换为带有请求修改的数组
- reactjs - 在重定向服务器后面部署 React 应用程序的重定向最佳实践
- sql - 需要多个 sql 回滚的多个子例程