• Vue课程62-实现添加的功能


    <!DOCTYPE html>

    <html lang="en">

    <head>

      <meta charset="UTF-8">

      <meta http-equiv="X-UA-Compatible" content="IE=edge">

      <meta name="viewport" content="width=device-width, initial-scale=1.0">

      <title>品牌列表案例</title>

      <link rel="stylesheet" href="./lib/bootstrap.css">

      <link rel="stylesheet" href="./css/brandlist.css">

    </head>

    <body>

      <div id="app">

        <!-- 卡片区域 -->

        <div class="card">

          <div class="card-header">

            添加品牌

          </div>

          <div class="card-body">

            <!-- 添加品牌的表单区域 -->

            <!-- form 表单元素有 submit 事件 -->

            <form @submit.prevent="add">

              <div class="form-row align-items-center">

                <div class="col-auto">

                  <div class="input-group mb-2">

                    <div class="input-group-prepend">

                      <div class="input-group-text">品牌名称</div>

                    </div>

                    <input type="text" class="form-control" placeholder="请输入品牌名称" v-model.trim="brand">

                  </div>

                </div>

                <div class="col-auto">

                  <button type="submit" class="btn btn-primary mb-2">添加</button>

                </div>

              </div>

            </form>

          </div>

        </div>

        <!-- 表格区域 -->

        <table class="table table-bordered table-hover table-striped">

          <thead>

            <tr>

              <th scope="col">#</th>

              <th scope="col">品牌名称</th>

              <th scope="col">状态</th>

              <th scope="col">创建时间</th>

              <th scope="col">操作</th>

            </tr>

          </thead>

          <tbody>

            <tr v-for="item in list" :key="item.id">

              <td>{{ item.id }}</td>

              <td>{{ item.name }}</td>

              <td>

                <div class="custom-control custom-switch">

                  <!-- 使用 v-model 实现双向数据绑定 -->

                  <input type="checkbox" class="custom-control-input" :id="'cb' + item.id" v-model="item.status">

                  <!-- 使用 v-if 结合 v-else 实现按需渲染 -->

                  <label class="custom-control-label" :for="'cb' + item.id" v-if="item.status">已启用</label>

                  <label class="custom-control-label" :for="'cb' + item.id" v-else>已禁用</label>

                </div>

              </td>

              <td>{{ item.time }}</td>

              <td>

                <a href="javascript:;" @click="remove(item.id)">删除</a>

              </td>

            </tr>

          </tbody>

        </table>

      </div>

      <script src="./lib/vue-2.6.12.js"></script>

      <script>

        const vm = new Vue({

          el: '#app',

          data: {

            // 用户输入的品牌名称

            brand: '',

            // nextId 是下一个,可用的 id

            nextId: 4,

            // 品牌的列表数据

            list: [

              { id: 1, name: '宝马', status: true, time: new Date() },

              { id: 2, name: '奔驰', status: false, time: new Date() },

              { id: 3, name: '奥迪', status: true, time: new Date() },

            ],

          },

          methods: {

            // 点击链接,删除对应的品牌信息

            remove(id) {

              this.list = this.list.filter(item => item.id !== id)

            },

            // 阻止表单的默认提交行为之后,触发 add 方法

            add() {

              // 如果判断到 brand 的值为空字符串,则 return 出去

              if (this.brand === '') return alert('必须填写品牌名称!')

              // 如果没有被 return 出去,应该执行添加的逻辑

              // 1. 先把要添加的品牌对象,整理出来

              const obj = {

                id: this.nextId,

                name: this.brand,

                status: true,

                time: new Date()

              }

              // 2. 往 this.list 数组中 push 步骤 1 中得到的对象

              this.list.push(obj)

              // 3. 清空 this.brand;让 this.nextId 自增 +1

              this.brand = ''

              this.nextId++

            }

          },

        })

      </script>

    </body>

    </html>

    运行结果

     

  • 相关阅读:
    Python版A股选股软件源代码,选股系统源代码,实现多种选股策略
    java毕业设计游戏商城平台Mybatis+系统+数据库+调试部署
    前端监控系列2 |聊聊 JS 错误监控那些事儿
    go语法入门2
    Vue实战篇三十:实现一个简易版的头条新闻
    ssh无法登录远程服务器
    从零实现ORM框架GeoORM-记录新增和查询-03
    Wireshark TS | 三谈 TCP 握手异常问题
    国内首发可视化智能调优平台,小龙带你玩转KeenTune UI
    nlp中如何数据增强
  • 原文地址:https://blog.csdn.net/geyaoisnice/article/details/124955566