Vue 在template中使用 $data 会在Android浏览器中报错
目前手头只测试了部分机型(三星,小米,苹果 6s),Android有问题,苹果没有问题,猜测是引擎渲染机制的问题?
具体情形是在代码中存在如下情况
- template
<template>
<img v-if="showImg" :src="showImg.img" :style="imgSize" alt="" >
<template>
- script
export default {
data:...,
computed:{
showImg() {
return this.$data[this.type].find((n, i) => i === this.index);
},
props: {
type: {
type: String,
default: ""
},
},
}
经测试,以上代码在android浏览器中打开会出现未捕获的异常,
建议解决方案:
不要在代码中使用$data,增加一级rootData来代替
export default {
data(){
return {
rootData:{
//其他data数据
}
}
}
}