vue 动态添加、修改、删除某一条数据

49 篇文章 1 订阅
41 篇文章 0 订阅

1.场景:最近需求多次出现要动态去增删改选中的一行数据,当只有一条数据时不让删除。故记录一波~

未操作:

 新增数据:

 删除第二条数据:

 2.实现:

 <div>
    <el-row :gutter="10" class="flex_middle row-item">
      <el-col :span="2"
        ><div class="center-text left-text input-">序号</div>
      </el-col>
      <el-col :span="10"> <div class="left-text">xxx1</div> </el-col>
      <el-col :span="4"> <div class="left-text">xxx2</div></el-col>
      <el-col :span="6"> <div class="left-text">权重</div> </el-col>
      <el-col :span="2" class="flex_space_around">
        <i class="blue el-icon-circle-plus" @click="addQueryClick()"></i>
      </el-col>
    </el-row>
    <el-row
      :gutter="10"
      class="flex_middle row-item"
      v-for="(item, index) in queryArr"
      :key="index"
    >
      <el-col :span="2"
        ><div class="center-text left-text input-text">
          {{ ++index }}
        </div></el-col
      >
      <el-col :span="10"
        ><el-input v-model="item.queryxxx1" placeholder="参数名称"></el-input
      ></el-col>
      <el-col :span="4">
        <el-input v-model="item.queryxxx2" placeholder="参数名称"></el-input>
      </el-col>
      <el-col :span="6"
        ><el-input v-model="item.queryExample" placeholder="参数示例"></el-input
      ></el-col>
      <el-col :span="2" class="flex_space_around"
        ><i
          class="el-icon-error blue"
          @click.prevent="removeQueryClick(item)"
        ></i
      ></el-col>
    </el-row>
</div>

<script>
export default {
  data() {
    return {
     queryArr: [
        {
          queryName: '',
          queryMust: '',
          queryExample: '',
          queryRemarks: ''
        }
      ]
    },
//-------------方法----------------
 methods: {
    // 添加
    addQueryClick() {
      this.queryArr.push({
        queryName: '',
        queryMust: 'must',
        queryExample: '',
        queryRemarks: ''
      })
    },
    // 删除
    removeQueryClick(item) {
      if (this.queryArr.length == 1) return false
      let index = this.queryArr.indexOf(item)
      if (index !== -1) {
        this.queryArr.splice(index, 1)
      }
    },
}

 

VxeTable 是 Vue 项目一款强大的表格组件,它可以处理动态数据。如果你想在运行时向 VxeTable 插入或修改数据,你可以通过以下几个步骤实现: 1. **初始化表单**:首先,在你的组件,你需要初始化一个空的 table 或者使用默认的数据源,比如初始列配置、数据列表等。 ```vue <template> <vxe-table :data="tableData" :columns="columns"> <!-- ... --> </vxe-table> </template> <script> export default { data() { return { columns: [], // 列配置 tableData: [], // 初始化为空的数据源 }; }, // ... }; </script> ``` 2. **添加修改数据**:当有新的数据需要插入或已有数据需要更新时,可以直接操作 `tableData` 数组。例如,假设你想在某个索引处添加一条新记录: ```javascript this.tableData.push({ // 新增数据字段 }); ``` 如果你想更新某一行的数据,可以指定行的 index: ```javascript this.tableData[index] = { // 更新后的数据字段 }; ``` 3. **监听数据变化**:为了实时更新表格视图,可以使用 Vue 的响应式系统,特别是对于数组的操作,Vue 自动会对数据进行跟踪并触发视图更新。如果数据来源来自其他异步操作,记得在获取到新数据后手动调用 `this.$nextTick(() => { ... })` 来确保数据已更新再进行渲染。 4. **处理删除操作**:同样,如果你需要从数组移除数据,也需要更新 `tableData` 并触发视图更新。 ```javascript this.tableData.splice(index, 1); // 删除指定索引的数据 ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值