vue中使用element,vue的el属性

  vue中使用element,vue的el属性

  我们在使用VUE元素处理接口时,经常会遇到各种需要使用JS集合处理的方法,比如Filter、Map、reduce等。还可能涉及一些常规处理或递归处理方法,如对象属性赋值。本文列举了一些Vue元素前端开发中经常遇到的JS处理场景,以供参考。

  

目录

   1、过滤、映射、归约处理方法2、递归处理3、forEach遍历处理4、Object.assign赋值方法5、正则集的slice()方法

  

1、常规集合的filter、map、reduce处理方法

  filter函数的主要目的是过滤数组元素,并返回满足条件的元素数组。

  const nums=[10,20,30,111,222,333]

  let new nums=nums . filter(function(n){

  返回n100

  })

  输出:

  [10,20,30]

  map函数是对数组中每个元素的映射操作,并返回一个新的数组。原始数组不会改变。将newNums中的每个数字乘以2。

  const nums=[10,20,30,111,222,333]

  设newNums=nums.map(function(n){

  返回n*2

  })

  输出:

  [20,40,60,222,666]

  reduce函数主要用于汇总一个数组的所有元素,比如所有元素的相加和相乘。

  const nums=[10,20,30,111,222,333]

  设new nums=nums . reduce(function(pre value,n){

  返回前值

  },0)

  输出:

  726

  有时可以几种治疗方法联合使用,如下综合案例所示。

  const nums=[10,20,30,111,222,333]

  let new nums=nums . filter(function(n){

  返回n100

  }).映射(函数(n){

  返回n*2

  }).reduce(function(preValue,n){

  返回前值

  },0)

  结果:

  120

  还有一个数组集合的find方法,类似于filter方法。

  find()方法主要用于返回数组中第一个合格的元素(如果不是,则返回undefined)。

  var Array=[1,2,3,4,5,6,7];

  var result=Array.find(函数(值){

  返回值5;//条件

  });

  console.log(结果);//6

  console.log(数组);//[1,2,3,4,5,6,7]

  同样,我们可以使用vue中require.context的处理机制来遍历文件进行处理,也需要使用filter,如下面的代码所示。

  下面的代码是我过滤文件夹中的文件。

  const req=require . context( vue-awesome/icons ,true,/\。js$/)

  const require all=require context=require context . keys()

  const re=/\。\/(.*)\.js/

  const vueawesomeicon=require all(req)。filter((key)={ return key . index of( index . js )0 })。地图(i={

  return i.match(re)[1]

  })

  导出默认vueAwesomeIcons

  

2、递归处理

  有时候我们需要从一个JSON集合中查询,因为集合是嵌套的,比如CHIREN里面有一个CHIREN集合,根据一个key属性,这个处理方法会用到递归。

  比如在我定义的一个菜单集中,就是这样的嵌套结构。当需要根据名称获取对应的对象时,就涉及到一个递归的处理函数。

  我们先来看看菜单的JSON集合。

  //这个菜单数据一般是服务器返回的。

  导出常量异步菜单=[

  {

  id:“1”,

  PID:“-1”,

  文本:“主页”,

  图标:“仪表板”,

  名称:“仪表板”

  },

  {

  id:“2”,

  PID:“-1”,

  文本:“产品信息”,

  图标:“表格”,

  儿童:[

  {

  id:“2-1”,

  PID:“2”,

  文本:“产品展示”,

  名称:产品-展示,

  图标:“表格”

  }]

  },

  {

  id:“3”,

  PID:“-1”,

  文本:“杂项管理”,

  图标:“示例”,

  儿童:[

  {

  id:“3-1”,

  PID:“3”,

  文本:“图标管理”,

  名称:“图标”,

  图标:“示例”

  },

  {

  id:“3-3”,

  PID:“3”,

  文本:“树函数演示”,

  名称:“树”,

  图标:“树”

  },

  {

  id:“3-2”,

  PID:“3”,

  文本:“二级菜单2”,

  图标:“树”,

  儿童:[

  {

  id:“3-2-2”,

  管道仪表流程图:“3-2”,

  文本:“3级菜单2”,

  名称:菜单1-1 ,

  图标:“表单”

  }

  ]

  }

  ]

  }

  ]

  如果需要根据ID遍历查询,这是典型的递归查询处理。

  //根据菜单id获取对应的菜单对象

  FindMenuById(menuList,menuid) {

  for(var I=0;i menuList.lengthi ) {

  var item=menu list[I];

  if (item.id item.id===menuid) {

  退货项目

  } else if (item.children) {

  var foundItem=this。FindMenuById(item.children,menuid)

  If (foundItem) {//只有找到才会返回

  返回foundItem

  }

  }

  }

  }

  这里值得注意的是,递归时不能用下面的直接返回。

  归还这个。FindMenuById(item.children,menuid)

  需要判断是否有结果被返回,否则嵌套递归可能会返回未定义的类型。

  var foundItem=this。FindMenuById(item.children,menuid)

  If (foundItem) {//只有找到才会返回

  返回foundItem

  }

  

3、forEach遍历集合处理

  很多情况下,我们还需要以forEach的方式遍历集合,如下:根据它的键值,注册全局过滤器。

  //导入全局过滤器

  从导入*作为筛选器。/筛选器

  //注册全局过滤器

  Object.keys(过滤器)。forEach(key={

  Vue.filter(键,过滤器[键])

  })

  或者在我们通过API获得数据之后,我们处理集合。

  //获取产品类型,用于绑定字典和其他用途。

  GetProductType()。然后(data={

  if(数据){

  this . treedata=[];//清除树列表。

  data.forEach(item={

  this.productTypes.set(item.id,item.name)

  this . typelist . push({ key:item . id,value: item.name })

  var node={ id: item.id,label: item.name }

  this.treedata.push(节点)

  })

  //获取列表信息

  this.getlist()

  }

  });

  或者当请求字典数据时,判断非空值。

  //使用字典类型从服务器请求数据

  GetDictData(this.typeName)。然后(data={

  if(数据){

  data.forEach(item={

  if (item typeof (item。值)!==未定义项。值!==) {

  that . dictionterms . push(项目)

  }

  });

  }

  })

  forEach()方法也用于对数组中的每个元素执行回调函数,但是它没有返回值(或者说它的返回值是未定义的,即使我们在回调函数中写了return语句,返回值仍然是未定义的)。

  注意:如果forEach中有两个参数,第一个参数是集合中的元素,第二个参数是集合的索引;

  

4、Object.assign赋值方法

  在某些情况下,我们需要将一个全新的集合复制到另一个对象中,并替换原对象的属性值,所以我们可以使用Object对象的assign方法。

  例如,当显示编辑界面时,将请求的对象属性复制到表单对象。

  var param={ id: id }

  GetProductDetail(param)。然后(data={

  Object.assign(this.editForm,data);

  })

  或者在查询时,获取查询条件,进行部分替换。

  //构造通用分页查询条件

  var param={

  type: this.producttype===all ?:this.producttype,

  page index:this . pageinfo . page index,

  pagesize:this . pageinfo . pagesize

  };

  //将SearchForm的条件添加到param中提交查询。

  param . type=this.searchform.producttype//into对应的属性。

  Object.assign(param,this . search form);

  

5、slice() 方法

  slice()方法可以从现有数组中返回选定的元素。

  语法如下所示。

  arrayObject.slice(开始,结束)

  如下例所示。

  设red=parseInt(color.slice(0,2),16)

  设green=parseInt(color.slice(2,4),16)

  设blue=parseInt(color.slice(4,6),16)

  或者我们结合过滤函数得到图标集的一部分。

  vueawesomeiconcsfiltered:function(){

  const那个=这个

  var list=that . vueawesomeicon s . filter(item={ return item . index of(that . search form . label)=0 })

  if (that.searchForm.pagesize 0) {

  返回list.slice(0,that.searchForm.pagesize)

  }否则{

  退货单;

  }

  }

  以上是Vue Element前端应用开发的常规JS处理函数的细节。更多关于Vue元素常规JS处理函数的信息,请关注我们的其他相关文章!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: