【发布时间】:2021-06-22 12:22:15
【问题描述】:
在此示例中:
<template>
<div>
<p
v-for="prop in receivedPropsLocal"
:key="prop.id"
>
{{prop}}
</p>
</div>
</template>
<script>
export default {
name: "PropsReceiver",
props: {
receivedProps: {
required: true,
type: Array,
default() {
return [];
},
},
},
data() {
return {
receivedPropsLocal: Array,
};
},
methods: {
},
watch: {
receivedProps: {
deep: true,
handler(val) {
let tmp = Object.entries(Object.assign({}, val));
this.receivedPropsLocal = tmp;
},
},
},
computed: {
getReceivedPropsLocal: {
get() {
if (!this.receivedPropsLocal) {
let tmp = Object.entries(Object.assign({}, this.receivedProps));
this.receivedPropsLocal = tmp;
return this.receivedPropsLocal;
}
return this.receivedPropsLocal;
},
set(value) {
this.receivedPropsLocal = value;
},
},
},
};
</script>
tmp 的范围是什么?它的处理方式是否与data() 中的其他条目类似?或者没关系。
【问题讨论】:
-
tmp是一个局部变量。它不是data()中的条目。 Vue 完全看不到它。 -
这很直观;不过有一个“警告”:stackoverflow.com/a/53757193/1079483
标签: javascript vue.js vuejs2 vue-component