当前位置: 首页 > news >正文

Vue——案例01(查询用户)

目录

一、案例实现页面

二、案例实现效果

1. 查询效果

2. 年龄升序

3. 年龄降序

4. 原顺序

三、案例实现思路

四、完整代码


一、案例实现页面

实现用户对年龄的升降的排序、根据名字搜索用户信息以及重新返回原序列

二、案例实现效果

1. 查询效果

2. 年龄升序

3. 年龄降序

4. 原顺序

三、案例实现思路

1. 定义界面所需标签样式

    <div id="app"><h2>查询用户:</h2><input type="text" placeholder="请输入名字"/><button>年龄升序</button><button>年龄降序</button><button>原顺序</button><table border="1px"><tr><th>编号</th><th>姓名</th><th>性别</th><th>年龄</th></tr></table></div>

2. 定义界面所需数据

        data: function () {return {datas: [{ id: 1, name: "李思思", sex: "女", age: 20 },{ id: 2, name: "王五", sex: "男", age: 24 },{ id: 3, name: "张三", sex: "男", age: 22 },{ id: 4, name: "李四", sex: "男", age: 21 },],inputname: "",sortType: 0, //0表示原顺序,1表示升序,2表示降序};}

3. 将数据循环放置在标签中

        <tr v-for="(data,index) in fillDatas" :key="data.id"><td>{{data.id}}</td><td>{{data.name}}</td><td>{{data.sex}}</td><td>{{data.age}}</td></tr>

4. 分别给每个按钮绑定相应的事件

0表示原顺序,1表示升序,2表示降序

      <button @click="sortType=1">年龄升序</button><button @click="sortType=2">年龄降序</button><button @click="sortType=0">原顺序</button>

5. 将事件全部定义在计算属性中

filter ()方法创建给定数组的一部分的浅副本,过滤掉给定数组中通过所提供函数实现的测试的元素

过滤数据获取数组对象

sort() 方法对原列表进行排序,如果指定参数,则使用比较函数指定的比较函数。

indexOf ()方法返回给定元素在数组中的第一个索引,如果不存在,则返回-1。

        computed: {//data中数据有变化,计算属性就在监听fillDatas() {//filter ()方法创建给定数组的一部分的浅副本,过滤掉给定数组中通过所提供函数实现的测 试的元素//过滤数据获取数组对象let arr = this.datas.filter((data) => {return data.name.indexOf(this.inputname) > -1;});if (this.sortType == 1) {//升序arr.sort(function (d1, d2) {return d1.age - d2.age;});}if (this.sortType == 2) {//降序arr.sort(function (d1, d2) {return d2.age - d1.age;});}return arr;},}

四、完整代码

<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></head><body><div id="app"><h2>查询用户:</h2><input type="text" placeholder="请输入名字" v-model="inputname" /><button @click="sortType=1">年龄升序</button><button @click="sortType=2">年龄降序</button><button @click="sortType=0">原顺序</button><table border="1px"><tr><th>编号</th><th>姓名</th><th>性别</th><th>年龄</th></tr><tr v-for="(data,index) in fillDatas" :key="data.id"><td>{{data.id}}</td><td>{{data.name}}</td><td>{{data.sex}}</td><td>{{data.age}}</td></tr></table></div><script type="text/javascript" src="../js/vue.global.js"></script><script>// 1.创建appconst app = Vue.createApp({// data: option apidata: function () {return {message: "Hello Vue",datas: [{ id: 1, name: "李思思", sex: "女", age: 20 },{ id: 2, name: "王五", sex: "男", age: 24 },{ id: 3, name: "张三", sex: "男", age: 22 },{ id: 4, name: "李四", sex: "男", age: 21 },],inputname: "",sortType: 0, //0表示原顺序,1表示升序,2表示降序};},//计算属性computed: {//data中数据有变化,计算属性就在监听fillDatas() {//filter ()方法创建给定数组的一部分的浅副本,过滤掉给定数组中通过所提供函数实现的测试的元素//过滤数据获取数组对象let arr = this.datas.filter((data) => {return data.name.indexOf(this.inputname) > -1;});if (this.sortType == 1) {//升序arr.sort(function (d1, d2) {return d1.age - d2.age;});}if (this.sortType == 2) {//降序arr.sort(function (d1, d2) {return d2.age - d1.age;});}return arr;},},});// 2.挂载appapp.mount("#app");</script><style></style></body>
</html>

http://www.lryc.cn/news/330315.html

相关文章:

  • 【数据结构】线性表
  • 983. 最低票价 C++
  • 紫光展锐P7885核心板详细参数介绍_5G安卓智能模块开发方案
  • Keil MDK 5.37 及之后版本 安装 AC5(ARMCC) 编译器详细步骤
  • 速盾:cdn配置ssl
  • 代码随想录算法训练营 Day41 动态规划3
  • 面试题:反推B+树高度
  • 瑞吉外卖实战学习--11、分类管理的列表分页查询
  • 网络安全新视角:数据可视化的力量
  • Aurora8b10b(2)上板验证
  • 每天五分钟计算机视觉:使用神经网络完成人脸的特征点检测
  • 表白墙项目(JAVA实现)
  • openGauss 高级分析函数支持
  • 【Java面试题系列】基础篇
  • Ubuntu 23.04 安装es
  • gradle 7.0 + 配置
  • vue3的ref和reactive对比
  • 是否应该升级到ChatGPT 4.0?深度对比ChatGPT 3.5与4.0的差异
  • C++刷题篇——04找等值元素
  • 2024年最新服装erp软件排名!(建议收藏)
  • Radash一款JavaScript最新的实用工具库,Lodash的平替!
  • 使用node爬取视频网站里《龙珠》m3u8视频
  • 搜索与图论——Prim算法求最小生成树
  • sqlmap基础知识
  • 读《C Primer Plus》
  • 深入理解计算机系统 家庭作业 2.66
  • 【服务端】node.js详细的配置
  • 二、CentOS基础配置(1.网络与包管理)
  • Golang基础-5
  • Mysql数据库:故障分析与配置优化