首页 > 其他分享 >vue前端几个常用的方法

vue前端几个常用的方法

时间:2023-08-28 18:02:04浏览次数:39  
标签:常用 vue column newArr 前端 arr item set let

1,字符串数组去重的方法

一、使用set结构去重

set是ES6中的一种数据结构,可以去除重复元素,其特征为无序且不重复,经常用于数组去重的场景。

let arr = [1, 2, 2, 3, 3, 4, 5];
let set = new Set(arr);
arr = Array.from(set);

二、使用indexOf方法去重

indexOf方法可以在数组中找到一个给定元素的第一个索引,如果没有找到就返回 -1,所以我们可以利用这个特性来进行数组去重。

let arr = [1, 2, 2, 3, 3, 4, 5];
let newArr = [];
for (let i = 0; i < arr.length; i++) {  
if (newArr.indexOf(arr[i]) === -1) {    newArr.push(arr[i]);  }
}
arr = newArr; 

三、使用includes方法去重

includes方法是ES7的一个新方法,判断一个数组中是否包含一个指定的值,返回 true 或 false。我们可以根据这个特性来进行去重操作。

let arr = [1, 2, 2, 3, 3, 4, 5];
let newArr = [];
for (let i = 0; i < arr.length; i++) { 
 if (!newArr.includes(arr[i])) {    newArr.push(arr[i]);  }
}
arr = newArr;

  2,有时候某个方法修改了vue form表单里的某个字段的内容,但是数据没用更改过来,这是因为没用渲染

重新渲染的方法:  this.$forceUpdate()

3,需要在某个table表字段上面增加备注说明的代码

{
            title:this.$t('WeeklyMessageModal.securityExams'),
            key: "safetyExam", 
            filterDropdown: (<div></div>), 
            filterIcon: <a-tooltip  title="工人,司机等无办公电脑人员,不纳入考试系统范围;考试结果是上周的考试情况,周报作为归档数据不会变化,如需查看最新的考试情况请进入考试管理模块查询" placement="topRight" >
            <a-icon type='question-circle-o' style="color:red" /> 
            </a-tooltip>,
            align:"center",
            dataIndex: 'safetyExam_dictText',
            scopedSlots: { customRender: 'safetyExamSlot' }
          },

 对某个字段内容重新赋值

{             title:this.$t('weekly.numberOfEmailReminders'),             filterDropdown: (<div></div>),             filterIcon: <a-tooltip  title="说明该周报未处理,系统自动发邮件提醒处理的次数" placement="topRight" >             <a-icon type='question-circle-o' style="color:red" />             </a-tooltip>,             align:"center",             dataIndex: 'remindNum',             customRender:function (text) {               return (text?'第 '+text+' 次':'')             }           }

4,过滤重复字典数据

/** 加载数据字典并合并到 options */
      _loadDictConcatToOptions(column) {
        initDictOptions(column.dictCode).then((res) => {
          if (res.success) {
            let newOptions = (column.options || [])// .concat(res.result)
            res.result.forEach(item => {
              // 过滤重复数据
              for (let option of newOptions) if (option.value === item.value) return
              newOptions.push(item)
            })
            this.$set(column, 'options', newOptions)
          } else {
            console.group(`JEditableTable 查询字典(${column.dictCode})发生异常`)
            console.log(res.message)
            console.groupEnd()
          }
        })
      },

  

gotoLogPage(){
        //console.log("this.searchMenuOptions==",this.searchMenuOptions)
        if(this.logTableName){
          let url = '/monitor/feishuDecrypt'
          if(url){
            let route = this.searchMenuOptions.filter(item => item.path === url)[0]
            if(route){
              this.$router.push({
                path: url
              });
            }else{
              this.$message.warn("抱歉,您没有权限查看!");
            }
          }
        }
      },


getSafetyPointByTimeAndBu(){
        // 只有选中了BU的时候才去查数据
        if(this.queryParam.buCode){
          this.buName = this.buOptions.filter(item=>{
            return item.businessUnitCode==this.queryParam.buCode
          })[0].businessUnitName;
          this.getSafetyPointReportByBuCode()
        }else{
          // 重新渲染一下
          this.$forceUpdate()
        }
      },

  

 

标签:常用,vue,column,newArr,前端,arr,item,set,let
From: https://www.cnblogs.com/zhangliang88/p/17663020.html

相关文章

  • Vue【原创】可拖动列表 darg-list
    可拖动排序的列表drag-list,这个比较简单易懂,拿例子直接运行看效果就好了。组件代码:1<template>2<ulclass="list"ref="parentNode"@dragstart="onDragStart"@dragover="onDragOver"@dragend="onDragEnd">3<......
  • vue 监听窗口变化
    mounted(){window.onresize=()=>{return(()=>{this.$nextTick(()=>{if(document.documentElement.clientWidth<=1000){this.mode="vertical"}else{......
  • Navicat 常用快捷键
    Navicat常用快捷键 Shift+Home光标->当前行行首单行选中内容Shift+End光标->当前行行尾Ctrl+R运行已选择的运行已选择的Ctrl+Shift+R Ctrl+/ 注释sql语句注释Ctrl+D 复制当前行 Ctrl+l删除一行测试未通过F6打开命令行......
  • docker常用操作命令
    Docker是一种开源的容器化平台,它提供了一种轻量级的容器化解决方案,可以将应用程序及其依赖项打包成一个可移植的容器。以下是一些常用的Docker操作命令和手册:镜像操作:dockerimages:列出本地的镜像列表。dockerpull<image_name>:从Docker仓库中拉取指定的镜像。dockerpus......
  • 关于 Vue.js v2 和 v3 生命周期的概述以及它们之间的区别
    Vue.jsv2的生命周期包括以下阶段:1、beforeCreate:在实例初始化之后、实例数据观测和事件配置之前被调用。2、created:实例已经创建完成,数据观测和事件配置已完成,但尚未挂载到DOM上。3、beforeMount:在挂载之前被调用,相关的render函数首次被调用。4、mounted:实例已......
  • 百度:为vue站添加百度统计
    一,登录百度统计获取统计代码:使用设置->网站列表->新增网站:填写数据后点确定:配置单页:复制代码:二,添加代码到vue的html页面12345678910111213141516171819202122232425262728293031323334353637<!DOCTYPEhtml><......
  • Vue【原创】日历组件
    最近项目中封装了一个日历组件,用于节假日管理,支持输入默认选中的日期,选择管理日期。效果图: calendar组件:1<template>2<divclass="calendar">3<slotname="title">4<divclass="calendar-title">{{curYearMont......
  • docker常用命令
    1.远程操控dockerdocker-Htcp://ip:portcommand,如docker-Htcp://localhost:2375images2.登录docker仓库dockerlogin repository_host,然后根据提示输入username,password3.登出docker仓库dockerlogout4.给镜像重新打标签dockertagimage_id R......
  • 【校招VIP】前端算法考察之排序
    考点介绍:不同的场景中,不同的排序算法执行效率不同。稳定:冒泡、插入、归并不稳定:选择、快速、堆排序、希尔排序一、考点题目1、使用js实现数组的快速排序解答:快速排序使用了冒泡+分治的思路。每轮从数组中取出一个数作为基准;在排序过程中,小于或等于基准数的全部放到基准的左......
  • Vue3 使用Vuex与Vuex-persistedstate
    Vuex与vuex-persistedstateVuex是什么?Vuex是一个用于Vue.js应用程序的状态管理模式。它使得在应用程序中的所有组件之间共享和访问状态变得非常简单。Vuex将应用程序的状态存储在一个单一的存储库中,并且提供了一组用于更改状态的API。这使得状态管理变得更加可预测和易于调试。......