vue当编辑框被触发就出现保存按钮

一个表单用vue的事件实现当点击编辑按钮(或图标)出现保存按钮,当要编辑的时候只出现编辑按钮,此时保存按钮隐藏

GPT给出的答案,整个思路是对的,你这边可以参考下。


可以使用Vue的条件渲染指令v-if和v-show来控制按钮的显示和隐藏。
首先,需要在Vue实例的data选项中定义一个变量isEditing,用来表示当前是否正在编辑:

javascript
data: {
  isEditing: false
}
然后,在模板中使用v-if和v-show来根据isEditing的值来控制按钮的显示和隐藏:

html
<template>
  <div>
    <button v-if="!isEditing" @click="startEditing">编辑</button>
    <button v-show="isEditing" @click="save">保存</button>
  </div>
</template>
其中,v-if会完全渲染或移除元素,而v-show只是简单地通过CSS控制元素的显示和隐藏。因此,对于需要频繁切换显隐的按钮,建议使用v-show。

最后,需要在startEditing和save方法中分别修改isEditing的值:

javascript
methods: {
  startEditing() {
    this.isEditing = true;
  },
  save() {
    // 保存表单数据的逻辑
    this.isEditing = false;
  }
}
当点击编辑按钮时,startEditing方法会被调用,将isEditing设置为true,此时保存按钮会显示出来。当点击保存按钮时,save方法会被调用,将isEditing再次设置为false,此时保存按钮会隐藏,编辑按钮重新显示。

@blur和@focus改变 v-show?

可以参考下这篇文章:http://t.csdn.cn/5ZUpo

可以使用Vue中的v-if和v-show指令来控制按钮的显示和隐藏。v-if会完全销毁和重新创建DOM元素,而v-show只是控制元素的显示和隐藏。

以下是一个简单的示例代码,用于根据按钮的状态显示不同的按钮:

<template>
  <div>
    <button v-if="!editing" @click="startEditing()">Edit</button>
    <button v-if="editing" @click="saveChanges()">Save</button>
    <!-- 编辑表单 -->
  </div>
</template>

<script>
export default {
  data() {
    return {
      editing: false
    };
  },
  methods: {
    startEditing() {
      this.editing = true;
    },
    saveChanges() {
      // 保存表单数据
      this.editing = false;
    }
  }
};
</script>


在上面的代码中,我们使用了一个布尔值editing来表示当前表单是否处于编辑状态。当editing为false时,显示"Edit"按钮。当editing为true时,显示"Save"按钮。

在startEditing()方法中,我们将editing设置为true,以便在下次渲染时显示"Save"按钮。在saveChanges()方法中,我们可以执行保存表单数据的操作,并将editing设置为false,以便在下次渲染时显示"Edit"按钮。

在编辑表单中,您可以使用v-show指令来根据editing的状态显示或隐藏表单元素,例如:


<!-- 编辑表单 -->
<form v-show="editing">
  <!-- 表单元素 -->
</form>

在这个示例中,当editing为true时,表单会显示出来;当editing为false时,表单会隐藏起来。