为什么我在data里面定义两个数组变量,在computed里面不能访问?
来源:2-8 路由基础

顾文龙
2019-06-30
为什么我在data里面定义两个数组变量,在computed里面不能访问?
我在网上搜了一些文章,看到别人在data里面声明的变量在computed里面是能访问的,我的必须要在计算属性里面定义我要的变量才不会报错,老师可以解答一下吗?
<template>
<div class="events">
{{text.split(',').reverse().join('')}}
<button type="button" name="button" @click="message1">test</button>
<div id="example-3">
<button v-on:click="say('hi')">Say hi</button>
<button v-on:click="say('what')">Say what</button>
</div>
<h1>{{OK?'YES':'NO'}}</h1>
<p>{{book}}</p>
<div id="app">
总价:{{prices}}
</div>
</div>
</template>
<script>
export default {
data:function(){
return {
counters:0,
OK:false,
book:'<vue.js实战>',
text:'123,456',
package1:[
{
name:'iPhone8',
price:8000,
count:1
},
{
name:'iPad',
price:4399,
count:2
}
],
package2:[
{
name:'orange',
price:45,
count:2
},
{
name:'banana',
price:18,
count:3
},
{
name:'milk',
price:26,
count:1
}
]
};
},
methods:{
message1:function () {
alert("我是皮卡丘")
},
say: function (message) {
alert(message)
}
},
computed:{
prices:function () {
var prices = 0;
// var package1 = [
// {
// name:'iPhone8',
// price:8000,
// count:1
// },
// {
// name:'iPad',
// price:4399,
// count:2
// }
// ];
// var package2 = [
// {
// name:'orange',
// price:45,
// count:2
// },
// {
// name:'banana',
// price:18,
// count:3
// },
// {
// name:'milk',
// price:26,
// count:1
// }
// ];
for (var i = 0, len = package1.length; i < len; i++) {
prices += this.package1[i].price * this.package1[i].count;
}
for(var j = 0;j < package2.length;j++){
prices += this.package2[j].price * this.package2[j].count;
}
return prices;
}
}
}
</script>
<style>
</style>
1回答
-
快乐动起来呀
2019-07-01
理论上是能访问的,你可以打印下,是取不到这个数据呢,还是因为引用的问题导致没改变值?
012019-07-02
相似问题