关于实现Vue中对json数据进行查询

最近在学Vue和javascript感觉js的好多方法都不太清楚,找了个朋友的代码,做一下模糊查询,在这里记录一下

目录

一、代码案例 

二、涉及到的知识点

三、知识点解析

(一)、Vue中的computed计算属性

(二)、箭头函数

(三)、filter() 方法

 (四)、Object.keys() 

(五)、可枚举属性

(六)、some()

(七)、String()

(八)、toLowerCase()

(九)、IndexOf()


一、代码案例 

  computed: { //计算,数据缓存更改一次,数据刷新一次  
// 模糊搜索
    tables () {
      const search = this.search
      if (search) {
        return this.dormitory.filter(data => {
          return Object.keys(data).some(key => {
            return String(data[key]).toLowerCase().indexOf(search) > -1
          })
        })
      }
      return this.dormitory
    }
  },

1、内字符解释:

//search在上面input标签中做了双向绑定<input v-model="search">

//在table中的数据进行绑定,使用的是element-UI中的table    :data=tables

data{

search:' '

dormitory:[{},{},.......]    json对象数组若干 

                }

2、代码解读

        filter()会创建一个新数组(返回的数组、显示到页面中的数组),先遍历this.dormitory,data是当前遍历的元素

        Object.keys(data) 将遍历得到的当前元素data   (内部是个json对象) 中的可枚举属性创建一个数组   也是通过遍历得到新数组,但是因为条件已经运行完(只有一个data)所以还没有运行some(),已经将Object.keys()全部运行完毕

        some() 判断条件是否满足  根据Object.keys(data)产生的数组内部元素有几个就搜索几次,当前产生的数组是['1','2','3','4'],那就some()的搜索会执行4次,但因为方法中的条件返回值就是true或者false 那么覆盖掉了原本要判断Object.keys(data)产生的数组内容,所以some()在这里更多的作用是作为循环

        String(data[key])  key是some()中箭头函数的参数  作为名称使用,key 等于 Object.keys(data)中产生的可枚举属性的数组中的元素名(以下称为O.k属性数组),所以在这some()就是将当前data (json对象)中的每一个属性的值转换为字符串型

        toLowerCase()将转化为字符串的属性值转化为小写

        indexOf(search)

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue调用本地的JSON数据可以通过以下步骤实现: 1. 首先,在Vue的项目目录下创建一个名为`data`的文件夹,并将需要调用的JSON数据文件放入该文件夹。例如,我们创建了一个名为`data.json`的JSON文件。 2. 在Vue组件,使用`import`语句引入需要的JSON数据文件。例如,我们创建一个名为`MyComponent.vue`的组件。 ```javascript // 在MyComponent.vue组件引入json文件 import data from "@/data/data.json"; ``` 3. 在Vue组件的`data`属性,定义一个变量来存储引入的JSON数据。 ```javascript // 在MyComponent.vue组件定义数据变量 data() { return { jsonData: data, }; }, ``` 4. 在Vue组件的模板,可以使用`jsonData`变量来访问JSON数据。 ```html <!-- 在MyComponent.vue组件的模板使用jsonData变量 --> <template> <div> <ul> <li v-for="item in jsonData" :key="item.id">{{ item.name }}</li> </ul> </div> </template> ``` 通过以上步骤,我们就可以在Vue成功调用本地的JSON数据文件。在上述代码,我们通过`import`语句将JSON数据文件导入到Vue组件,并在组件的`data`属性定义了一个变量`jsonData`来存储这些数据。在组件的模板,我们使用`v-for`指令遍历`jsonData`变量,并展示其数据。 需要注意的是,确保JSON文件的路径正确,并且在导入JSON文件时使用了正确的路径。如果JSON文件路径不正确,将会导致数据无法加载。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值