淘宝导购网站模版,上海网站推广软件,深圳龙岗区租房子多少钱一个月,兰州装修公司排名前十对已知的列表进行数据过滤(根据输入框里面的内容进行数据过滤)
编写案例
通过案例来演示说明 效果就是这样的 输入框是模糊查询 想要实现功能#xff0c;其实就两大步#xff0c;1获取输入框内容 2根据输入内容进行数据过滤
绑定收集数据
我们可以使用v-model去双向绑定 …对已知的列表进行数据过滤(根据输入框里面的内容进行数据过滤)
编写案例
通过案例来演示说明 效果就是这样的 输入框是模糊查询 想要实现功能其实就两大步1获取输入框内容 2根据输入内容进行数据过滤
绑定收集数据
我们可以使用v-model去双向绑定 这样第一步收集输入数据就完成了 然后就要实现第二步了
使用watch监视实现
首先使用watch实现对keyWord进行监视 确认下监视是没有问题的 既然监视是没有问题就可以写逻辑操作了
这里使用filter进行过滤使用indexOf判断是否包含内容,大概说下indexOf判断是否包含字符串的一些基本操作如果返回-1表示不包含如果包含会返回当前这个字符串所在的下标所以判断是否包含只需要知道结果是否等于-1 知道了逻辑以及如何使用api就继续编写代码这里filer会返回一个新的数组把过滤出来的新数组替换掉老数组 查看页面好像是没问题的 但是这时候我换成周没有数据了 解决filer问题
导致这个问题的原因是使用filter过滤出来的新数据已经没有关于周的姓名了这么写的逻辑就是越搜越少persons是原数据原数据不能直接修改原数据里面的数据是不能改变的 既然这样我们就新增一个属性专门存储用来过滤出来的数据 但是发现一个问题页面初始化的时候是空的 但是输入一个马然后删除掉数据就有了 这就要说下indexOf的一个细节indexOf是可以判断空的会返回0,判断第一个字符也会返回0
既然知道这个细节那么上面这个问题也就解释得通了 想要解决这个bug就不能使用监视的简写形式了我们写成正常写法加上immediate属性设置为true自动让过滤器执行参数为空 测试页面。没有任何问题 使用computed计算属性实现
监视可以实现的computed都可以实现下面就使用computed的方式把上面的案例实现下 大概逻辑都是一样的只是一些语法不一样比如watch里面的参数在computed是没有的我们可以换成this获取。然后返回出去新的结果 效果也是一样的 watch和computed对比
通过这个案例知道了使用watch和computed都可以实现通过对比发现很明显watch更麻烦一些computed更精简一些当两者都能实现的时候优先使用computed