• 5.Vue-在Vue框架中实现Vue的增删改查


    题记

            在vue框架中实现vue的增删改查,以下是具体操作流程和代码

    编写TestView.vue文件

            TestView.vue文件如下: 

    1. <template>
    2. <div id="app">
    3. <h1>学生列表h1>
    4. <input type="text" v-model="searchQuery" placeholder="输入姓名进行查询">
    5. <table>
    6. <thead>
    7. <tr>
    8. <th>姓名th>
    9. <th>年龄th>
    10. <th>操作th>
    11. tr>
    12. thead>
    13. <tbody>
    14. <tr v-for="(student, index) in filteredStudents" :key="index">
    15. <td>{{ student.name }}td>
    16. <td>{{ student.age }}td>
    17. <td>
    18. <button @click="editStudent(index)">编辑button>
    19. <button @click="deleteStudent(index)">删除button>
    20. td>
    21. tr>
    22. tbody>
    23. table>
    24. <h2>添加/编辑学生h2>
    25. <form @submit.prevent="saveStudent">
    26. <label>姓名:label>
    27. <input type="text" v-model="newStudent.name" required>
    28. <label>年龄:label>
    29. <input type="number" v-model="newStudent.age" required>
    30. <button type="submit">{{ editingIndex === null ? '添加' : '保存' }}button>
    31. form>
    32. div>
    33. template>
    34. <script>
    35. export default{
    36. data() {
    37. return{
    38. students: [
    39. { name: 'ng1', age: 18 },
    40. { name: 'ng2', age: 20 },
    41. { name: 'ng3', age: 22 }
    42. ],
    43. // 还定义了一个newStudent对象,用于存储正在添加或编辑的学生的临时数据
    44. // editingIndex变量用于记录正在编辑的学生的索引。
    45. // searchQuery变量用于存储用户输入的查询关键字。
    46. newStudent: {
    47. name: '',
    48. age: ''
    49. },
    50. editingIndex: null,
    51. searchQuery: ''
    52. }
    53. },
    54. // 在computed属性中,定义了一个名为filteredStudents的计算属性,
    55. // 它根据searchQuery的值对students数组进行过滤,
    56. // 如果searchQuery为空,则返回所有学生信息;否则,返回包含查询关键字的学生信息。
    57. computed: {
    58. filteredStudents() {
    59. if (this.searchQuery === '') {
    60. return this.students;
    61. } else {
    62. //使用Array的filter方法遍历students数组,并对每个学生对象的姓名进行判断
    63. //使用了箭头函数语法,表示对每个学生对象进行匿名函数的操作。
    64. //在函数体内部,使用了String的includes方法,
    65. //判断学生的姓名中是否包含了searchQuery属性的值(即用户输入的查询关键字)。
    66. //如果包含了,就将该学生对象保留在过滤后的数组中。
    67. return this.students.filter(student => {
    68. return student.name.includes(this.searchQuery);
    69. });
    70. }
    71. }
    72. },
    73. methods: {
    74. //saveStudent方法用于保存或更新学生信息。
    75. //通过判断editingIndex是否为null来确定当前是添加学生还是编辑学生的操作。
    76. //如果editingIndex为null,表示当前是添加学生的操作,将newStudent对象添加到students数组中。
    77. //如果editingIndex不为null,表示当前是编辑学生的操作,
    78. //将newStudent对象替换students数组中对应索引的学生信息。
    79. //将editingIndex重置为null,表示编辑操作已完成。
    80. //将newStudent对象重置为空对象,以清空输入框中的内容。
    81. saveStudent() {
    82. if (this.editingIndex === null) {
    83. // 添加学生
    84. this.students.push({ ...this.newStudent });
    85. } else {
    86. // 编辑学生
    87. this.students[this.editingIndex] = { ...this.newStudent };
    88. this.editingIndex = null;
    89. }
    90. this.newStudent = { name: '', age: '' };
    91. },
    92. //editStudent方法用于编辑学生信息。
    93. //当点击编辑按钮时,传入对应学生的索引作为参数。
    94. //在方法内部,将该学生的信息复制到newStudent对象中,以便在表单中显示出来。
    95. //同时,将editingIndex设置为该学生的索引,以标记当前正在编辑的学生。
    96. editStudent(index) {
    97. this.newStudent = { ...this.students[index] };
    98. this.editingIndex = index;
    99. },
    100. //在方法内部,使用splice方法从students数组中删除对应索引的学生信息。
    101. deleteStudent(index) {
    102. this.students.splice(index, 1);
    103. }
    104. }
    105. }
    106. script>

    执行程序

            注意:以上的代码需要在vue框架中运行,且是vue3的框架 

     展示图

     

    后记 

            觉得有用可以点赞或收藏! 

  • 相关阅读:
    ENVI、ERDAS计算Landsat 7地表温度:单窗算法实现
    智慧教育经典ML模型---DKVMN模型工作机制
    公司招了个五年经验的测试员,见识到了真正的测试天花板
    使用ollama分别在我的window、mac、小米手机上部署体验llama3-8b
    SSD上 NVIDIA Jetson Orin NANO系統如何刷
    jenkins结合k8s部署动态slave
    STL-空间配置器
    2022年湖北武汉建设厅特种作业操作证书如何获取?怎么报考呢?
    关于PMP考试免费重考,你想知道的都在这
    DOM系列之DOM事件流
  • 原文地址:https://blog.csdn.net/m0_70819559/article/details/133879633