vuejs2 - VueJS2:我应该在 data() 中编写函数吗?
问题描述
写作功能是否data
被认为是一种好习惯?我的意思不是在根组件中,而是在它的子组件中。
我问这个是因为我见过 Vue 插件vue-echarts 之一,在他们的 README.md 中使用它
<template>
<v-chart :options="polar"/>
</template>
<style>
/**
* The default size is 600px×400px, for responsive charts
* you may need to set percentage values as follows (also
* don't forget to provide a size for the container).
*/
.echarts {
width: 100%;
height: 100%;
}
</style>
<script>
import ECharts from 'vue-echarts'
import 'echarts/lib/chart/line'
import 'echarts/lib/component/polar'
export default {
components: {
'v-chart': ECharts
},
data () {
let data = []
for (let i = 0; i <= 360; i++) {
let t = i / 180 * Math.PI
let r = Math.sin(2 * t) * Math.cos(2 * t)
data.push([r, i])
}
return {
polar: {
title: {
text: '极坐标双数值轴'
},
legend: {
data: ['line']
},
polar: {
center: ['50%', '54%']
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross'
}
},
angleAxis: {
type: 'value',
startAngle: 0
},
radiusAxis: {
min: 0
},
series: [
{
coordinateSystem: 'polar',
name: 'line',
type: 'line',
showSymbol: false,
data: data
}
],
animationDuration: 2000
}
}
}
}
</script>
如果是这样,那么它将在什么时候执行?生命周期之后created()
还是什么?
所以这是两个问题
- 它被认为是最佳实践吗?
- 如果有,什么时候执行?
谢谢你。
解决方案
数据键是组件的内存。它将允许您将要跟踪的变量存储在组件内,它是组件反应性的一部分。
如果有,什么时候执行?
它将在方法之后和beforeCreate
方法之前执行created
。
参考:https ://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram
如果你想要一些特定的东西,你可以直接在你的数据函数中格式化你的数据。
您从vue-echart
插件中提供的示例与
let data = []
for (let i = 0; i <= 360; i++) {
let t = i / 180 * Math.PI
let r = Math.sin(2 * t) * Math.cos(2 * t)
data.push([r, i])
}
var vm = new Vue({
data() {
return {
a: data
}
}
})
created()
我个人更喜欢在创建组件的默认状态后在函数内格式化我的数据,只是为了让我的代码更简单。
请记住,data
关键字也可以是一个简单的对象,但它应该是组件内部的一个函数,以避免它们在同一个 Vue 实例中复制时共享同一个对象。
这种情况没有“最佳实践”(我可能错了,但我从未见过有关它的东西),这只是两个开发人员之间可能不同的偏好
如果您想了解更多信息,请随时查看https://vuejs.org/v2/api/#datadata
推荐阅读
- mysql - 查询多个表以查找重复的一对一关系(按来自不同表的多列分组)
- html - 单击时如何使图像转到产品详细信息永久链接?
- javascript - ReactJs链接无法导航到相应的组件
- php - 在 Firebase 存储 php 中更新图像
- c# - 通过接口限制类的暴露
- c - cJSON_Delete(); 导致free():无效指针:0xb5db1e18
- swift - 对讲接口返回带有符号“_”的文本
- java - 使用 java spring boot 在 postgres 中获取和插入数据的通用方法
- python-3.x - 无法在 docker 内的 python 应用程序中使用 asyncio 提高速度
- amazon-web-services - AWS S3 cli 将多个对象复制到新存储桶