一、响应式数据转换
1.应用场景:Element组件的input和button通过点击相互切换,用v-if和v-else来控制显示与隐藏,v-if拿到数据,修改数据true,但是依旧不能改变按钮状态。
2.方法:this.$set(点击的属性, '响应式属性名', 值)
3.代码实现:
<template>
<el-input v-if="row.inputVisible" ref="saveTagInput" v-model="row.inputValue"
class="input-new-tag" size="small"/>
<!-- @click="showInput" row:当前点击的销售属性-->
<el-button v-else class="button-new-tag" size="small" @click="addSaleAttrValue(row)">添加</el-button>
</template>
<script>
export default {
methods:{
addSaleAttrValue(row) {
// 点击销售属性值当中的按钮的时候,需要由button变为input,通过当前销售属性的inputVisible控制
// 谁,将哪个响应式属性,值为何
this.$set(row, 'inputVisible', true)
}
}
}
</script>
二、清空数据
1.应用场景:点击取消按钮和保存按钮时清空表格数据
2方法:Object.assign(this._data, this.$options.data())
3.代码实现:
// 取消按钮回调
cancel() {
// 取消按钮回调,通知父亲切换场景为0
this.$emit('changeScene', { scene: 0, flag: '' })
// 清理数据
// Object.assign:es6中的方法,可以合并对象 this._data:源码组件实例,可以操作data当中的响应式数据
// this.$options:获取配置对象,配置对象的data函数执行,返回的响应式数据为空
Object.assign(this._data, this.$options.data())
}