项目场景:
最近有一个需求:表格中某行有可输入的内容 并在内容输入后 该行其他单元格展示对应内容 并且输入的内容不做保存操作
问题描述
输入的内容如果保存 直接调接口重新渲染即可,但是不保存又要拿到数据实时渲染到页面 但是一直不生效 , 使用this.$forceUpdate()也不生效
解决方案:
面向百度之后 得知 可以先对数据进行拷贝 在使用 this.$set(this.gridData, index, row); 让vue.js监听到数据变化 前端页面就可以达到局部刷新效果 ,开干!
<el-input class="inputNumber" :placeholder="'最大号为:' + scope.row.maxDocument" size="small" @input="countNumber(scope.row, scope.$index)" v-model="scope.row.maxNumber"></el-input>
countNumber(row, index) {
let obj={}
let params={...} //这里是你要传递的参数
//这里是你调接口的返回的数据直接赋值
getData(params).then(res=>{
obj.missNum =res.data.missNum
obj.repeatNum =res.data.repeatNum
row={...obj} //拷贝一下
this.$set(this.gridData, index, row); //当前行数据更新
})
}
就这样 输入内容查询到的数据就实时渲染咯 hin好 又学到一手~