项目中常用写法(前端)
项目中常用写法(前端)
- vue
- 等待某个方法执行结束后,在执行
- 判断js是不是undefined类型
- 父组件传值到子组件
- state的值在标签中直接使用
- 读取html,去掉字符串中的html标签
- 字符串去掉中括号
- 去掉双引号
- 判断数组中是否包含某个值
- 在某个ui框架上的:text写判断
- 数组截取前几条数据
- vue运行打包
- vue打包之后放到nginx上运行
- 获取时间不是两位数字补全2位
- elementui 表格透明
- element ui 的级联 选择后不收起弹窗
- element ui 的级联 其他级别可选,最后一级不可选隐藏radio
- 遍历求和
- 绝对定位居中: 自身的一半
- flex换行:
- 清除定时器:
- 格式化时间:
- 保留两位小数:
- 过滤对象中某些值等于固定的值:
- 按照对象中的某个值进行排序:
- 复制对象 生成新对象 ,aa值不发生改变:
- 获取所有key值:
- 两个对象比较删除掉不相同的属性:
- 跳转页面传参,另一个页面接收:
- 父组件校验子组件的表单:
- 时间格式转化:
- 子组件调用父组件方法:
vue
项目中常用的书写方式
等待某个方法执行结束后,在执行
this.getCurrentAjInfo().then((results) => {
})
判断js是不是undefined类型
typeof (aa) !== 'undefined'
父组件传值到子组件
父组件在create中获取接口数据,取到的值放到父组件的data中,如下把data的值传递给子组件
<comHeader :hbfonts="hbfonts" />
子组件接受值
props: [ 'hbfonts'],
state的值在标签中直接使用
<span id="headerspan" v-show="hbfonts==1" class="fd-header-icon-span-3">{{$store.state.session.showName}}</span>
读取html,去掉字符串中的html标签
str.replace(/<[^>]+>/g, '')
字符串去掉中括号
aa.replace(/\[|]/g,'')
去掉双引号
aa.replace(/\"/g, "");
判断数组中是否包含某个值
//存在,flag1==0 不存在:flag2==-1
let barginFlag=[1,2,3,4];
let flag1= barginFlag.findIndex(item => item=== a)
在某个ui框架上的:text写判断
<aa-menu v-for="(item, index) in aa" :key="item.key" :code="item.key" :text="`<i class='fd-aa icon-${index%10} ${item.key}' style='margin-right: 10px'></i><span class='${(item.name === 'aa' && onshow)?'fontred':''}'>${item.name}</span> `+ `<i class='${(item.name === 'aa' && onshow)?'fd-aa icon-11':''}' style='margin-left: 10px;width: 11px;height:14px;'></i>`" @click="handleTriggerClick(item)"></aa-menu>
数组截取前几条数据
articleList.slice(0,1)
vue运行打包
cd ..
npm run build
vue打包之后放到nginx上运行
修改nginx的conf下的nginx.conf文件,修改端口号,修改代理地址
server {listen 10022;server_name localhost;
}location /aa/ {proxy_pass http://192.168.33.44:8080;}
cmd命令查看端口号占用和杀掉占用进程:
>netstat -ano|findstr 10022>taskkill/f /pid 17680
获取时间不是两位数字补全2位
this.hours = `00${data.getHours()}`.slice(-2)+ ':' + `00${data.getMinutes()}`.slice(-2)
elementui 表格透明
/*最外层透明*//deep/ .el-table, /deep/ .el-table__expanded-cell{background-color: rgba(255,255,255,0.03);font-size: 14px;border: 0px;}/* 表格内背景颜色 *//deep/ .el-table th,/deep/ .el-table tr,/deep/ .el-table td {background-color: rgba(255,255,255,0.03);font-size: 14px;border: 1px solid rgba(255,255,255,0.16);}/deep/ .el-table tr,/deep/ .el-table td {color: #ffffff;}/deep/ .el-table th{color: #099cfe;}/deep/ .el-table tbody tr:hover > td {background-color: transparent !important;}/deep/ .el-table--enable-row-transition .el-table__body td,.el-table .cell {background-color: transparent;}
element ui 的级联 选择后不收起弹窗
<el-cascader @change="cascaderSelectChange" ref="cascaderRef"></el-cascader>cascaderSelectChange() {// 自动收到下拉框this.$refs.cascaderRef.dropDownVisible = false
},
element ui 的级联 其他级别可选,最后一级不可选隐藏radio
.selectCell .el-cascader-panel .el-cascader-menu:nth-child(3){.el-radio{display: none;}
}
遍历求和
var datas =[{ value: 188, name: '91-100分' },{ value: 120, name: '85-90分' },];
let total = datas.flat().reduce(function (preValue, n) {return preValue + n.value}, 0)
绝对定位居中: 自身的一半
transform: translate(-50%, -50%);
flex换行:
flex-wrap: wrap;
清除定时器:
window.clearTimeout(this.ds1);
clearInterval(this.timersd)
格式化时间:
$ npm install moment --save
在main.js中全局引入
import moment from "moment"
Vue.prototype.$moment = moment;
moment(new Date()).format('YYYY-MM-DD') >= moment(this.form.halfstart).format('YYYY-MM-DD')
保留两位小数:
parseFloat(0).toFixed(2),
过滤对象中某些值等于固定的值:
this.xwpjList = this.$store.getters.dictionaryList.filter(item => item.pcode === this.code);
按照对象中的某个值进行排序:
this.xwpjList.sort((a, b) => {return a.code-b.code
})
复制对象 生成新对象 ,aa值不发生改变:
let mtsjTemp = Object.assign({},this.aa,this.bb)
获取所有key值:
let keys = Object.keys(this.aa[0]);
两个对象比较删除掉不相同的属性:
Object.getOwnPropertyNames(mtsjTemp).filter((value)=>{if(keys.indexOf(value)==-1){delete mtsjTemp[value];} else if(['nc','nm','nz'].indexOf(value)!=-1){mtsjTemp[value] = this.timestampToTime(mtsjTemp[value]);}
});
跳转页面传参,另一个页面接收:
this.$router.push({name: '01FormView',params: {_id: this.rowid,button: 'update',stage: this.stage,rybs:this.rybs}
})
if(this.$route.params.rybs == 0){res.jzjd = 0
}
父组件校验子组件的表单:
父组件
<xwpjForm :formCulumn="formCulumn" ref="pyRules" :formData="this.pyList" />
let pyFlag = this.$refs['pyRules'].validateForm(array);
子组件
<el-form :model="scope.row" ref="xwpjList" :rules="rules" class="demo-ruleForm" style="width:100%"><el-form-item :prop="items.disabled==true?items.prop:null" style="width:100%" v-if="!items.select"><el-input :autosize="{ minRows: 1, maxRows: 1}" type="textarea" :disabled="items.disabled ? scope.row[items.disabled] : true" style="width:100%;margin: 5px 0" v-model="scope.row[items.prop]"></el-input></el-form-item>
</el-form>
validateForm (array) {let flag = nulllet flagArray =[];for(var i=0;i<this.$refs['xwpjList'].length;i++){this.$refs['xwpjList'][i].validate(valid => {this.defaultSelect(array);if (valid && this.selectChooseOrNo) {flagArray.push('true')} else {flagArray.push('false')}})}if(flagArray.indexOf('false')>=0){flag = false;} else {flag = true;}return flag},
时间格式转化:
timestampToTime(timestamp) {if(timestamp == null || timestamp == ''){return "";}var date = new Date(timestamp);//时间戳为10位需*1000,时间戳为13位的话不需乘1000var Y = date.getFullYear() + '-';var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-';var D = date.getDate();return Y+M+D;},
子组件调用父组件方法:
子组件
<el-button @click="formInsert(scope.$index, formData)" :disabled="chi.disabled ? scope.row[chi.disabled] : true" type="primary" plain >嘿嘿</el-button>
this.$emit('inrBtnClick', index, formData)
父组件
<p2023-formlist :formCulumn="formCulumn" ref="childRules" :formData="form.aa" @inrBtnClick="inrBtnClick"/>
inrBtnClick(index, rows){
// 内容
},
相关文章:
项目中常用写法(前端)
项目中常用写法(前端)vue等待某个方法执行结束后,在执行判断js是不是undefined类型父组件传值到子组件state的值在标签中直接使用读取html,去掉字符串中的html标签字符串去掉中括号去掉双引号判断数组中是否包含某个值在某个ui框架…...

【面试】Java并发编程面试题
文章目录基础知识为什么要使用并发编程多线程应用场景并发编程有什么缺点并发编程三个必要因素是什么?在 Java 程序中怎么保证多线程的运行安全?并行和并发有什么区别?什么是多线程多线程的好处多线程的劣势:线程和进程区别什么是…...

HAProxy和Nginx搭建负载均衡器
负载均衡器是一个常用于分布式计算和网络应用中的系统组件,主要用于将客户端的请求分发到多个后端服务器上,以实现高可用性、高性能和可扩展性。常见的负载均衡器软件包括HAProxy和Nginx。 本文将介绍负载均衡器的原理和应用,以及使用HAProx…...
【集大成篇】数据类型( C、C++、Java )对比
1、C 语言数据类型关键字取值范围内存占用字符型char -128~1271整 型short-32768~327672int-2147483648~2147483647 (10位数)4long (int)-2147483648~2147483647 (10位数)4/8long long (int)-9223372036854775808~-9223372036854775807 (19位数ÿ…...

python编程:从键盘输入一个正整数n(n>2),请编程求解并输出大小最接近n的素数(n本身除外)
python编程实现:从键盘输入一个正整数n(n>2),请编程求解并输出大小最接近n的素数(n本身除外) 一、编程题目 从键盘输入一个正整数n(n>2),请编程求解并输出大小最接近n的素数(n本身除外)。 (温馨提示,结果可能是2个哦) 二、输入输出样例…...
spring的面试宝典
1、什么是spring框架? spring是一个开放源代码的设计层面框架,它解决的是业务逻辑层和其他各层的松耦合问题,是一个分层的javaEE一站式轻量级开源框 架. 2.spring的作用? 方便解耦,简化开发,AOP编程支持,声明式事务支持,集成Juni…...

ArcGIS Pro地理空间数据处理完整工作流实训及python技术融合深度应用
查看原文>>>ArcGIS Pro地理空间数据处理完整工作流实训及python技术融合深度应用 目录 第一章、ArcGIS Pro基础讲解 第二章、数据获取、整合与管理 第三章、坐标系基础与地理配准 第四章、数据编辑与查询、拓扑检查 第五章、制图基础讲解 第六章、地理处理工具…...

(二)MyBatis源码阅读:SqlSession分析
一、核心流程 以下代码便是MyBatis的核心流程,我们从该代码出发分析MyBatis的源码。 Testpublic void test2() throws Exception{// 1.获取配置文件InputStream in Resources.getResourceAsStream("mybatis-config.xml");// 2.加载解析配置文件并获取Sq…...

小白学Pytorch系列-- torch.autograd API
小白学Pytorch系列-- torch.autograd API torch.Autograd提供了实现任意标量值函数的自动微分的类和函数。它只需要对现有代码进行最小的更改-你只需要声明张量s,它的梯度应该用requires gradTrue关键字计算。到目前为止,我们只支持浮点张量类型(half, f…...

【大数据基础】基于零售交易数据的Spark数据处理与分析
环境搭建 sudo apt-get install python3-pip pip3 install bottle数据预处理 首先,将数据集E_Commerce_Data.csv上传至hdfs上,命令如下: ./bin/hdfs dfs -put /home/hadoop/E_Commerce_Data.csv /user/hadoop接着,使用如下命令…...

【机器学习】P14 Tensorflow 使用指南 Dense Sequential Tensorflow 实现
Tensorflow 第一节:使用指南Tensorflow 安装神经网络一些基本概念隐藏层和输出层:神经元的输出公式Tensorflow 全连接层 Dense 与 顺序模型 SequentialDense LayerSequential Model代码实现一个神经网络实现方式一:手写神经网络* 实现方式二&…...

ubuntu18.04安装nvidia驱动,3种方式图文详解+卸载教程
教程目录一、关闭secure boot二、禁用nouveau驱动2.1 创建配置文件2.2 添加内容2.3 重启电脑2.4 输入命令验证三、安装显卡驱动3.1 软件和更新(失败)3.2 PPA源安装3.3 官网安装包安装四、卸载显卡驱动笔记本类型Ubuntu系统显卡版本联想拯救者Y7000win10U…...

多线程进阶学习11------CountDownLatch、CyclicBarrier、Semaphore详解
CountDownLatch ①. CountDownLatch主要有两个方法,当一个或多个线程调用await方法时,这些线程会阻塞 ②. 其它线程调用countDown方法会将计数器减1(调用countDown方法的线程不会阻塞) ③. 计数器的值变为0时,因await方法阻塞的线程会被唤醒,继续执行 public static void m…...

华为OD机试用java实现 -【RSA 加密算法】
最近更新的博客 华为od 2023 | 什么是华为od,od 薪资待遇,od机试题清单华为OD机试真题大全,用 Python 解华为机试题 | 机试宝典【华为OD机试】全流程解析+经验分享,题型分享,防作弊指南华为od机试,独家整理 已参加机试人员的实战技巧本篇题解:RSA 加密算法 题目 RSA 加密…...
技术宅小伙:大龄程序员就业,未来我们将何去何从?
程序员是一个高薪高压的职业,同时也是一个需要不断学习的职业。随着技术的不断更新换代,程序员需要不断地学习新的知识和技能,以适应市场的需求。然而,有些程序员可能会遭遇裁员,失去了稳定的收入来源。有些程序员可能…...

Spring Boot+Vue实现Socket通知推送
目录 Spring Boot端 第一步,引入依赖 第二步,创建WebSocket配置类 第三步,创建WebSocket服务 第四步,创建Controller进行发送测试 Vue端 第一步,创建连接工具类 第二步,建立连接 编辑 第三步&a…...

python---python介绍
python介绍 1.1介绍 1.1.1为什么学习 1.1.2什么是python 优雅简单易学1.1.3在线2进制转换 在线二进制转文本工具 - 转换 1.1.4python的安装和配置 1.需要配置对应的环境变量。可以设置多个。 默认全选 设置安装的路径 最后安装完成即可。 验证:python 如何退出 1.1.…...
第十四届蓝桥杯大赛——真题训练第10天
目录 第一题:扫雷 题目描述 输入描述 输出描述 输入输出样例 运行限制 题目代码 第 2 题:完全平方数 问题描述 输入格式 输出格式 样例输入 1 样例输出 1 样例输入 2 样例输出 2 题目分析 题目代码 第三题:求阶乘 问题描述…...

3.29~3.30学习总结
刷题情况: 蓝桥杯刷题: Java学习情况: 抽象类:如果将子类中抽取的共性行为(方法),子类的执行不一样的时候 (通俗一点来说,就是无法找到一个万能的方法体供子类使用,但这…...

结构体详解 ——— C语言
目录 1.结构体 结构体类型的声明 结构的自引用 结构体变量的定义和初始化 结构体内存对齐 结构体传参 结构体实现位段(位段的填充&可移植性) 位段的内存分配 1.结构体 结构体类型的声明 结构的自引用 结构体变量的定义和初始化 结构体内存对…...

css实现圆环展示百分比,根据值动态展示所占比例
代码如下 <view class""><view class"circle-chart"><view v-if"!!num" class"pie-item" :style"{background: conic-gradient(var(--one-color) 0%,#E9E6F1 ${num}%),}"></view><view v-else …...
React hook之useRef
React useRef 详解 useRef 是 React 提供的一个 Hook,用于在函数组件中创建可变的引用对象。它在 React 开发中有多种重要用途,下面我将全面详细地介绍它的特性和用法。 基本概念 1. 创建 ref const refContainer useRef(initialValue);initialValu…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...

Python实现prophet 理论及参数优化
文章目录 Prophet理论及模型参数介绍Python代码完整实现prophet 添加外部数据进行模型优化 之前初步学习prophet的时候,写过一篇简单实现,后期随着对该模型的深入研究,本次记录涉及到prophet 的公式以及参数调优,从公式可以更直观…...

Java-41 深入浅出 Spring - 声明式事务的支持 事务配置 XML模式 XML+注解模式
点一下关注吧!!!非常感谢!!持续更新!!! 🚀 AI篇持续更新中!(长期更新) 目前2025年06月05日更新到: AI炼丹日志-28 - Aud…...

Maven 概述、安装、配置、仓库、私服详解
目录 1、Maven 概述 1.1 Maven 的定义 1.2 Maven 解决的问题 1.3 Maven 的核心特性与优势 2、Maven 安装 2.1 下载 Maven 2.2 安装配置 Maven 2.3 测试安装 2.4 修改 Maven 本地仓库的默认路径 3、Maven 配置 3.1 配置本地仓库 3.2 配置 JDK 3.3 IDEA 配置本地 Ma…...

Unity | AmplifyShaderEditor插件基础(第七集:平面波动shader)
目录 一、👋🏻前言 二、😈sinx波动的基本原理 三、😈波动起来 1.sinx节点介绍 2.vertexPosition 3.集成Vector3 a.节点Append b.连起来 4.波动起来 a.波动的原理 b.时间节点 c.sinx的处理 四、🌊波动优化…...
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析
Java求职者面试指南:Spring、Spring Boot、MyBatis框架与计算机基础问题解析 一、第一轮提问(基础概念问题) 1. 请解释Spring框架的核心容器是什么?它在Spring中起到什么作用? Spring框架的核心容器是IoC容器&#…...
代码随想录刷题day30
1、零钱兑换II 给你一个整数数组 coins 表示不同面额的硬币,另给一个整数 amount 表示总金额。 请你计算并返回可以凑成总金额的硬币组合数。如果任何硬币组合都无法凑出总金额,返回 0 。 假设每一种面额的硬币有无限个。 题目数据保证结果符合 32 位带…...

【Redis】笔记|第8节|大厂高并发缓存架构实战与优化
缓存架构 代码结构 代码详情 功能点: 多级缓存,先查本地缓存,再查Redis,最后才查数据库热点数据重建逻辑使用分布式锁,二次查询更新缓存采用读写锁提升性能采用Redis的发布订阅机制通知所有实例更新本地缓存适用读多…...