e před 8 měsíci
rodič
revize
8bc5bf947f
1 změnil soubory, kde provedl 76 přidání a 0 odebrání
  1. 76 0
      vue/vue初阶/15.列表排序.html

+ 76 - 0
vue/vue初阶/15.列表排序.html

@@ -0,0 +1,76 @@
+<!DOCTYPE html>
+<html lang="en">
+  <head>
+    <meta charset="UTF-8" />
+    <meta name="viewport" content="width=device-width, initial-scale=1.0" />
+    <title>Document</title>
+  </head>
+  <body>
+    <div id="app">
+      <h2>关键字搜索:<input type="text" v-model="keywords" /></h2>
+      <ul>
+        <li v-for="(item,index) in newList" :key="index">
+          {{index+1}}-我叫{{item.name}}--今年{{item.age}}--是一个{{item.sex}}孩
+        </li>
+      </ul>
+      <button @click="sortType = 1">升序</button><br /><br />
+      <button @click="sortType = 2">降序</button><br /><br />
+      <button @click="sortType = 0">默认排序</button>
+    </div>
+    <script src="./vue.js"></script>
+    <script>
+      var app = new Vue({
+        data: {
+          arr: [
+            {
+              name: "LiLi",
+              age: 10,
+              sex: "女",
+            },
+            {
+              name: "John",
+              age: 17,
+              sex: "男",
+            },
+            {
+              name: "Lucy",
+              age: 22,
+              sex: "女",
+            },
+            {
+              name: "Jack",
+              age: 20,
+              sex: "男",
+            },
+            {
+              name: "孙悟空",
+              age: 33,
+              sex: "男",
+            },
+            {
+              name: "猪八戒",
+              age: 30,
+              sex: "男",
+            },
+          ],
+          keywords: "",
+          sortType: 0,
+          List: [],
+        },
+        computed: {
+          newList() {
+            this.List = this.arr.filter((item) => {
+              return item.name.indexOf(this.keywords) !== -1;
+            });
+            if (this.sortType) {
+              this.List.sort((a,b) => {
+               return this.sortType == 1 ? a.age - b.age : b.age - a.age;
+              })
+            }
+            return this.List;
+          },
+        },
+      }).$mount("#app");
+    </script>
+  </body>
+</html>