Vuelayui实现简单的增删查改

Posted 张文琪2022

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Vuelayui实现简单的增删查改相关的知识,希望对你有一定的参考价值。

今天公司里不是很忙,忙里偷闲学了会Vue,做了个小demo,使用Vue和layui框架。全部代码如下:

<!DOCTYPE html>
<html>

<head>
    <meta charset="UTF-8">
    <title>Vue+layui Demo</title>
    <!-- 对应好js文件的路径哟 -->
    <link rel="stylesheet" href="layui/css/layui.css" />
    <script src="layui/layui.js"></script>
    <script src="vue.js"></script>
</head>

<body>

    <div id="app">
        <form class="layui-form" action="">
            <fieldset>
                <legend>
                    添加新用户
                </legend>
                <div style="width: 30%">
                    <div class="layui-form-item">
                        <label class="layui-form-label">名字:</label>
                        <div class="layui-input-block">
                            <input type="text" placeholder="请输入名字" class="layui-input" v-model="newPerson.name">
                        </div>
                    </div>

                    <div class="layui-form-item">
                        <label class="layui-form-label">年龄:</label>
                        <div class="layui-input-block">
                            <input type="number" placeholder="请输入年龄" class="layui-input" v-model="newPerson.age">
                        </div>
                    </div>

                    <div class="layui-form-item">
                        <label class="layui-form-label">性别:</label>
                        <div class="layui-input-block">
                            <select v-model="newPerson.sex">
                                <option value=""></option>
                                <option value="Male">男</option>
                                <option value="Female">女</option>
                            </select>
                        </div>
                    </div>


                </div>
                <button @click="add" type="button" class="layui-btn layui-btn-normal">添加</button>
                <button @click="find" type="button" class="layui-btn layui-btn-normal">查询</button>
                <button @click="ref" type="button" class="layui-btn layui-btn-normal">重置</button>
            </fieldset>
        </form>
        <table class="layui-table" style="text-align: center">
            <thead>
                <tr>
                    <th style="text-align: center">姓名</th>
                    <th style="text-align: center">年龄</th>
                    <th style="text-align: center">性别</th>
                    <th style="text-align: center">操作</th>
                </tr>
            </thead>
            <tbody>

                <tr v-for="(person,index) in people">
                    <td> person.name </td>
                    <td> person.age </td>
                    <td>
                        <span v-if="person.sex=='Male'">男</span>
                        <span v-else-if="person.sex=='Female'">女</span>
                        <span v-else></span>
                    </td>
                    <td :class="'text-center'"><button @click="del(index)"
                            class="layui-btn layui-btn-sm layui-btn-danger">删除</button></td>
                </tr>
            </tbody>
        </table>

    </div>


</body>

<script>
    var vm = new Vue(
        el: '#app',

        data: 
            newPerson: 
                name: '',
                age: 0,
                sex: 'Male'
            ,
            datas: [
                name: 'Z',
                age: 22,
                sex: 'Male'
            , 
                name: 'W',
                age: 22,
                sex: 'Male'
            , 
                name: 'Q',
                age: 19,
                sex: 'Female'
            , 
                name: 'R',
                age: 99,
                sex: 'Male'
            ],
            people: [],
            onepeople:

        ,
        created: function () 
            this.people = this.datas.slice(0);//数组赋值 问题一
        ,
        methods: 
            ref: function () 
                //绑定数据问题
                this.newPerson = 
                    name: '',
                    age: 0,
                    sex: 'Male'
                
                this.people.splice(0, this.people.length);
                this.people = this.datas.slice(0);

            ,
            add: function () 
                if (this.newPerson.name == "" || this.newPerson.name == null) 
                    alert("名字不能为空");
                 else if (this.newPerson.age == "" || this.newPerson.age == null) 
                    alert("年龄不能为空");
                 else if (this.newPerson.sex == "" || this.newPerson.sex == null) 
                    alert("性别不能为空");
                 else 
                    this.people.push(this.newPerson);
                    this.newPerson = 
                        name: '',
                        age: 0,
                        sex: 'Male'
                    //问题二
                
            ,
            del: function (index) 
                this.people.splice(index, 1);//删除数组中的数据
            ,
            find: function () 
                for (let p of this.people) 
                    if (p.name == this.newPerson.name) 
                        this.onepeople = p;
                        break;
                    
                
                if (this.onepeople.name != null) 
                    this.people.length = 0;
                    this.people.push(this.onepeople);
                 else 
                    alert("无数据");
                
            
        
    );
</script>
<script>
    layui.use('form', function () 
        var form = layui.form;
        form.render();//表单渲染 这里是针对select 问题三
    )
</script>

</html>

问题总结

1、数组间赋值,使用slice方法,避免地址复用
2、添加后改变输入框里的值,添加后的数据也会跟着变化,最直接的方法就是重新创建一个对象
3、layui表单中有几个标签必须要使用form模块渲染才能使用

以上是关于Vuelayui实现简单的增删查改的主要内容,如果未能解决你的问题,请参考以下文章

django与mysql实现简单的增删查改

java--easyUI+struts+JSP实现简单的增删查改(增)

java--easyUI+struts+JSP实现简单的增删查改

单链表~增删查改(附代码)~简单实现

Spring Boot集成ElasticSearch实现简单的增删查改接口

java实现简单的数据库的增删查改,并布局交互界面