首页 > 其他分享 >vue-day16---watch与computed实现列表过滤

vue-day16---watch与computed实现列表过滤

时间:2023-07-15 19:33:18浏览次数:30  
标签:vue computed age watch sex id name

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>watch与computed实现列表过滤</title> <script type="text/javascript" src="../js/vue.js"></script> </head> <body> <div id="root"> <h2>人员列表</h2> <input type="text" placeholder="请输入名字" v-model="keyWord" />
<ul> <li v-for="(p,index) in fillterpersons" :key="index"> {{p.name}}-{{p.age}}-{{p.sex}} </li> </ul> </div>
<script type="text/javascript"> //用watch 实现 // new Vue({ // el: "#root", // data: { // keyWord: "", // persons: [ // { id: "001", name: "马冬梅", age: 19, sex: "女" }, // { id: "002", name: "周冬雨", age: 20, sex: "女" }, // { id: "003", name: "周杰伦", age: 21, sex: "男" }, // { id: "004", name: "温兆伦", age: 22, sex: "男" }, // ], // fillterpersons: [], // },
// watch: { // keyWord: { // immediate: true, // handler(value) { // this.fillterpersons = this.persons.filter((p) => { // return p.name.indexOf(value) != -1; // }); // }, // }, // }, // });
new Vue({ el: "#root", data: { keyWord: "", persons: [ { id: "001", name: "马冬梅", age: 19, sex: "女" }, { id: "002", name: "周冬雨", age: 20, sex: "女" }, { id: "003", name: "周杰伦", age: 21, sex: "男" }, { id: "004", name: "温兆伦", age: 22, sex: "男" }, ], },
computed: { fillterpersons() { // 这个形式是缩写,当getter函数使用 // 初次读取的时候会调用一下,当依赖的数据发生变化时也会调用一下 return this.persons.filter((p) => { // 这个return是filter规定的 // “abc”.indexOf('') 很特殊是 0 return p.name.indexOf(this.keyWord) != -1; }); }, }, });
//用conputed 实现 </script> </body> </html>

标签:vue,computed,age,watch,sex,id,name
From: https://www.cnblogs.com/satisfysmy/p/17556739.html

相关文章

  • VUE WebSocket连接成功后,立即发送一个token
    ws=newWebSocket(ws://${location.host}/xxx)ws.onopen=()=>{ws.send(JSON.stringify({headers:{Authorization:Bearer${token}}}));isConnected.value=true;}查看方法:在消息数据里(不是标头里)......
  • vue3 封装api接口
    新建axiosj.tsimportaxiosfrom'axios';import{showMessage}from"./status";//引入状态码文件import{ElMessage}from'element-plus'//引入el提示框,这个项目里用什么组件库这里引什么//设置接口超时时间axios.defaults.timeout=60000;//请求地址,......
  • vite-plugin-vue-images——Vite自动导入图片
    vite-plugin-vue-images——Vite自动导入图片在Vue2时我们经常会这样引用图片:<img:src='require("地址")'/>但在Vite中不支持require了,引用图片变成了下面这样:<template><img:src='imgUrl'/></template><scriptsetup>importimgUrl......
  • vue中$set和$forceUpdate强制更新视图层的区别
    $forceUpdate原理:调用notify() 强制视图更新  $set原理:defineReactive(this.data数据,要劫持得数组索引或对象键,默认值)   建立响应式依赖  指定数据更新使用场景:如果data数据的层级过深,导致无法响应式显示解决方法一:$set()this.$set(target,key,value)解......
  • vue3 为什么使用 hooks?
    目的为了解决在组件中共享逻辑和状态的问题。 hooks提供了一种更简洁和直观的方式来共享逻辑和状态。vue3中的hooks是基于函数的组件模型,通过在函数组件内部使用特定的hook函数来实现。每个hook函数都有特定的用途,例如:useState用于创建和管理状态,useEffect用于......
  • SpringBoot+Vue3+MySQL集群 开发健康体检双系统
    第1章课程介绍试看4节|38分钟观看项目演示,熟悉大健康体检项目主要功能。掌握学习本课程的最佳方法,以及如何利用在线手册学习和答疑。第2章大健康体检项目全栈环境搭建16节|218分钟利用虚拟机或者云主机安装Linux系统和Docker环境,部署MongoDB、Redis、Minio和RabbitMQ等中......
  • 150.vuerouter中的导航钩子函数
    150.vue-router中的导航钩子函数(1)全局的钩子函数beforeEach和afterEachbeforeEach有三个参数,to代表要进入的路由对象,from代表离开的路由对象。next是一个必须要执行的函数,如果不传参数,那就执行下一个钩子函数,如果传入false,则终止跳转,如果传入一个路径,则导航到对应的......
  • 146.Vue的生命周期是什么
    146.Vue的生命周期是什么?Vue的生命周期指的是组件从创建到销毁的一系列的过程,被称为Vue的生命周期。通过提供的Vue在生命周期各个阶段的钩子函数,我们可以很好的在Vue的各个生命阶段实现一些操作。......
  • 109.vue双向数据绑定原理
    109.vue双向数据绑定原理?vue通过使用双向数据绑定,来实现了View和Model的同步更新。vue的双向数据绑定主要是通过使用数据劫持和发布订阅者模式来实现的。首先我们通过Object.defineProperty()方法来对Model数据各个属性添加访问器属性,以此来实现数据的劫持,因此当M......
  • Vuex是什么,怎么使用?
    Vuex是一个状态管理库,它为Vue应用程序提供了一个集中式的存储管理机制,用于管理不同组件之间共享的状态数据。Vuex将该状态存储在一个单一的对象树中,这使得在整个应用程序中追踪状态变化变得更加容易和可预测。当我们在一个Vue.js应用程序中编写代码时,我们会遇到以下问题:多个组件需......