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

Vue 响应式渲染 - 过滤应用

Vue 渐进式JavaScript 框架 基于Vue2的学习笔记 - Vue响应式渲染综合 - 过滤应用

目录

过滤应用

引入vue

Vue设置

设置页面元素

模糊查询过滤实现

函数表达式实现

总结


过滤应用

综合响应式渲染做一个输入框,用来实现;搜索输入框关键词符合列表。

引入vue

在当前html文件中引入Vue2 js。

示例如下:

<script src="../lib/vue.js"></script>

Vue设置

实例化Vue,绑定具体元素;设置相应的数据状态变量和事件处理。

示例如下:

<script>
    let vm = new Vue({
        el:'#box',
        data: {
            mytext:'',
            datalist:['aa', 'bb', 'cc', 'dd', 'ee', 'de']
        },
        methods:{
            handleInput() {
                console.log('input')
            }
        }
    })
</script>

设置页面元素

设置页面元素并绑定事件。

示例如下:

<div id="box">
    <input type="text" @input="handleInput">
    <ul>
        <li v-for="item in datalist" :key="item">
            {{item}}
        </li>
    </ul>
</div>

模糊查询过滤实现

Input事件,只要值改变就会触发;然后在绑定事件中对列表变量进行过滤处理。

注意:需要设置一个不变的数组源,如果把过滤的数组覆盖掉原数组,则无法再实现反复输入和过滤,最后变成空列表。

示例如下:

let vm = new Vue({
    el:'#box',
    data: {
        mytext:'',
        datalist:['aa', 'bb', 'cc', 'dd', 'ee', 'de'],
        originList:['aa', 'bb', 'cc', 'dd', 'ee', 'de']
    },
    methods:{
        handleInput(eve) {
            console.log('input', eve.target.value)
            this.mytext = eve.target.value;

            this.datalist = this.originList.filter(item=> item.includes(this.mytext))
        }
    }
})

效果:

函数表达式实现

上面实现的方式,不够完美;下面我们使用函数表达式来进行优化实现。

首先修改input绑定事件,改为值改变触发事件。

然后渲染列表改为函数表达式实现。

示例如下:

<div id="box">
    <input type="text" v-model="mytext">
    <ul>
        <li v-for="item in test()" :key="item">
            {{item}}
        </li>
    </ul>
</div>
<script>
    let vm = new Vue({
        el:'#box',
        data: {
            mytext:'',
            datalist:['aa', 'bb', 'cc', 'dd', 'ee', 'de']
        },
        methods:{
            test() {
                return this.datalist.filter(item=> item.includes(this.mytext))
            }
        }
    })
</script>

效果:

 

总结

综合响应式渲染做一个输入框,用来实现;搜索输入框关键词符合列表。


http://www.kler.cn/a/540639.html

相关文章:

  • Python——批量图片转PDF(GUI版本)
  • C语言学习笔记:子函数的调用实现各个位的累加和
  • 2025web寒假作业二
  • Photoshop自定义键盘快捷键
  • 手动配置IP
  • Nutz Dao与Spring集成
  • layui怎么请求数据
  • NFTScan | 02.03~02.09 NFT 市场热点汇总
  • 操作系统—文件管理
  • 【含文档+PPT+源码】基于微信小程序的社交摄影约拍平台的设计与实现
  • Vue的Diff算法与React的Diff算法有何不同?
  • 19.1.1 DDL
  • C++性能优化—AI润色版
  • H5 图片系列—new Image()加载图片是否会有缓存,从而img标签获取同一数据源显示时使用该缓存数据?
  • ZoneMinder index.php SQL注入漏洞复现(附脚本)(CVE-2024-43360)
  • jvm 线程监控调试
  • redis项目
  • 突破YOLOv11训练:用幽默的方式玩转自定义数据集与物体检测
  • 【读书笔记·VLSI电路设计方法解密】问题46:什么是bug覆盖率
  • C++20中的std::atomic_ref
  • 【干活分享】2025年可以免费问答的一些GPT网站-deepseek等免费gpt
  • LLM - 理解多模态大模型 Qwen2-VL 的 NDR 与 M-RoPE 教程
  • 中国通信企业协会通信网络安全服务能力评定安全设计与集成服务能力评定三级要求准则...
  • 前端权限控制和管理
  • DDR原理详解
  • 计算机毕业设计SpringBoot+Vue.js飞机票在线订购系统(源码+文档+运行视频+讲解视频)