vue-v-model 双向绑定-编辑弹框修改数据后点击取消后恢复原数据

这两天做vue项目时用到了v-model来绑定表单里的输入数据,我们输入数据后表单也能显示我们输入的数据,但是当我们不想修改数据时,点击取消按钮也不能恢复原来的数据,百度了一下,发现可以用js提供的Object.assign()对象方法来解决,原文地址,但总觉得这个方法有点麻烦,于是想到了localStorage.setItem(key,value):将value存储到key字段,我们可以在修改按钮设置点击事件保存我们的原始数据


  
Edit () {
   //  修改
  // 先用localStorage存储form数据
  
localStorage.setItem('obj', JSON.stringify
如果你在Vue3和ElementUI中使用el-select组件的multiple属性进行单选或多选,并且想要在点击编辑按钮后,出一个来显示选择的结果,可以使用ElementUI的Dialog组件来实现。具体步骤如下: 1. 在父组件中,给el-select绑定一个v-model,用来存储选择的值,并在点击编辑按钮时,打开一个Dialog,用来显示选择结果。 2. 将选择结果传递给Dialog,在中显示选择结果。 下面是一个简单的示例代码: 父组件: ```html <template> <div> <el-select v-model="selected" multiple> <el-option label="Option 1" value="1"></el-option> <el-option label="Option 2" value="2"></el-option> <el-option label="Option 3" value="3"></el-option> </el-select> <el-button @click="edit">编辑</el-button> <el-dialog :visible.sync="dialogVisible" title="选择结果"> <div v-for="item in selected" :key="item">{{ item }}</div> </el-dialog> </div> </template> <script> import { ref } from 'vue' export default { setup() { const selected = ref([]) // 存储选择结果的数组 const dialogVisible = ref(false) // 控制Dialog显示的变量 const edit = () => { // 打开Dialog dialogVisible.value = true } return { selected, dialogVisible, edit } } } </script> ``` 在父组件中,我们使用了Vue3的Composition API来定义了存储选择结果的数组和控制Dialog显示的变量,并在edit方法中,打开了Dialog。 在Dialog中,我们使用了v-for来遍历选择结果数组,将每个选择结果显示在中。 注意,我们使用了v-bind.sync来将dialogVisible属性和Dialog组件中的visible属性进行了双向绑定,这样就可以在父组件中控制Dialog的显示和隐藏。 子组件: ```html <template> <div> <el-select v-model="selected" :multiple="true"> <el-option label="Option 1" value="1"></el-option> <el-option label="Option 2" value="2"></el-option> <el-option label="Option 3" value="3"></el-option> </el-select> </div> </template> <script> import { defineProps, ref, watch } from 'vue' export default { props: { selected: { type: Array, default: () => [] } }, setup(props) { const selected = ref(props.selected) // 存储选择结果的数组 // 监听父组件传递的选择结果,更新子组件的选择结果 watch(() => props.selected, (newValue) => { selected.value = newValue }) return { selected } } } </script> ``` 在子组件中,我们使用了props来接收父组件传递的v-model的值,并在el-select中绑定这个值,用来实现选择功能。 在父组件中,我们使用v-bind.sync来将父组件中的selected属性和子组件中的selected属性进行了双向绑定,这样就可以实现在父组件中点击编辑后,Dialog内部的回显数据
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值