vue实现图书管理案例

深碍√TFBOYSˉ_ 2022-08-28 04:41 136阅读 0赞

需求:

1. 动态在页面中展示图书列表;

2. 在输入框中输入图书名称,按回车键实现图书添加功能(图书名称不能为空);

3. 点击“删除”按钮可以实现删除图书

参考效果图:

watermark_type_ZHJvaWRzYW5zZmFsbGJhY2s_shadow_50_text_Q1NETiBA5pif5bG_SA_size_20_color_FFFFFF_t_70_g_se_x_16

代码:**注意:代码所需vue可以通过npm i vue —save下载,然后引入即可**

  1. <!DOCTYPE html>
  2. <html lang="en">
  3. <head>
  4. <meta charset="UTF-8">
  5. <meta http-equiv="X-UA-Compatible" content="IE=edge">
  6. <meta name="viewport" content="width=device-width, initial-scale=1.0">
  7. <title>图书管理信息表</title>
  8. <!-- 最新版本的 Bootstrap 核心 CSS 文件 -->
  9. <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css"
  10. integrity="sha384-HSMxcRTRxnN+Bdg0JdbxYKrThecOKuH5zCYotlSAcp1+c8xmyTe9GYg1l9a69psu" crossorigin="anonymous">
  11. <script src="./js/vue.js"></script>
  12. <style>
  13. .btn {
  14. padding: 0px 12px;
  15. }
  16. </style>
  17. </head>
  18. <body>
  19. <div id="app" class="container">
  20. <h3 class="text-center text-primary">图书管理信息表</h3>
  21. <input type="text" class="form-control" id="exampleInputEmail1" placeholder="请输入图书名称" v-model="bookname"
  22. @keydown.enter="add()">
  23. <table class="table table-bordered table-hover table-striped text-center" width="500">
  24. <tr>
  25. <th class="text-center">id</th>
  26. <th class="text-center">书名</th>
  27. <th class="text-center">时间</th>
  28. <th class="text-center">操作</th>
  29. </tr>
  30. <tr v-for="(item,index) in arr" :key="item.id">
  31. <td>{
  32. {index+1}}</td>
  33. <td>{
  34. {item.bookname}}</td>
  35. <td>{
  36. {item.time}}</td>
  37. <td><button class="btn btn-danger" @click="del(index)">删除</button></td>
  38. </tr>
  39. <tr v-if="arr.length==0">
  40. <td colspan="4">暂无数据~</td>
  41. </tr>
  42. <tr v-else>
  43. <td colspan="4"><button class="btn btn-danger" @click="delAll">全部删除</button></td>
  44. </tr>
  45. </table>
  46. </div>
  47. <script>
  48. new Vue({
  49. //挂载点
  50. el: "#app",
  51. //数据
  52. data: {
  53. arr: sessionStorage.getItem("arr") ? JSON.parse(sessionStorage.getItem("arr")) : [],
  54. bookname: ""
  55. },
  56. //方法
  57. methods: {
  58. // 添加
  59. add() {
  60. if (this.bookname == "") {
  61. alert("图书名称不能为空");
  62. return;
  63. }
  64. this.arr.push({
  65. bookname: this.bookname,
  66. time: new Date().toLocaleTimeString()
  67. });
  68. // 存储到本地
  69. sessionStorage.setItem("arr", JSON.stringify(this.arr))
  70. this.reset();
  71. },
  72. // 清空
  73. reset() {
  74. this.bookname = "";
  75. },
  76. // 删除
  77. del(index) {
  78. this.arr.splice(index, 1);
  79. // 存储到本地
  80. sessionStorage.setItem("arr", JSON.stringify(this.arr));
  81. },
  82. // 全部删除
  83. delAll() {
  84. this.arr = [];
  85. // 存储到本地
  86. sessionStorage.setItem("arr", JSON.stringify(this.arr));
  87. }
  88. }
  89. })
  90. </script>
  91. </body>
  92. </html>

效果图:

48c74b5629684f03b6f36507d7bc6190.gif

发表评论

表情:
评论列表 (有 0 条评论,136人围观)

还没有评论,来说两句吧...

相关阅读