#vue.js
#vue.js
Вопрос:
Я хочу объявить глобальный массив внутри vue.js
компонента, чтобы я мог получить к нему доступ всеми методами. Где мне его объявить, в какой части компонента?
Я пробовал устанавливать в PROPS
, но он создает объект, в то время как мне нужен тип массива.
export default{
name:"BarElement",
props:[
"labels",
"dataset",
"colors"
],
methods:{
drawGraph() {
var dataPoints =[];
var dataPoint =this.getDataPoint(upperLeftCornerX,nextX,value);
this.dataPoints.push(dataPoint);
}
getDataPoint(x, nextX, value) {
return {
'leftEdge':x,
'rightEdge':nextX,
'value':value
}
},
showToolTip(event) {
var mouseX = event.offsetX;
var toolTipVal = this.dataPoints.forEach(function(item, key) {
if(mouseX >= item.leftEdge amp;amp; mouseX <= item.leftEdge )
return item.value;
});
console.log(toolTipVal);
}
}
Ответ №1:
Попробуйте объявить его внутри объекта данных
data () {
myArray:[]
}
Вы также можете объявить props как объект, поскольку это позволит указать тип реквизита
props: {
labels: Array,
dataset: Array,
colors: Object
}
Если вы хотите, чтобы все ваши компоненты этого типа совместно использовали один и тот же массив, объявите его вне инструкции export default.
Ответ №2:
Ну, внутри вашего компонента вы можете объявить данные как функцию, и это будет локально для вашей функции.
name: "BarElement",
props: ["labels", "dataset", "colors"],
data: function() {
return {
foo: {
text: 'text1'
}
}
}
На случай, если вы хотите объявить глобальный массив в своем компоненте приложения.
Аналогично компоненту, вы можете добавлять данные внутри него.
Теперь, чтобы получить доступ к этим данным, вы можете использовать их с this.$root.[nameOfObject]
.
Вот официальные документы для $ root
Надеюсь, это поможет!