前端开发中的一些tips(持续更新)
本文记录分享一些在日常开发中经常遇到的一些问题的解决方案及常用小技巧,如有错误之处还请批评指正。
CSS相关:
1.如何修改chrome记住密码后自动填充表单的黄色背景?
input:-webkit-autofill, textarea:-webkit-autofill, select:-webkit-autofill {
background-color: #FFF;
background-image: none;
color: #333;
}
2.鼠标选中文本时添加背景色
<style>
p::selection{
color:red,
background:yellow
}
</style>
<p>Custom text selection color</p>
JS相关:
1. axios请求参数问题:
post/put有3个参数:url、data、config。
get/delete有2个参数:url、config。
get、delete请求传参区别:
get请求需要将入参的数据作为config中params属性的值,以request parameter形式发送。
delete请求需要将入参的数据作为config中data属性的值,以request body形式发送。
//get请求参数拼接在url中,如 http://www.A.com/?name="xxx"&age="18"
axios.get('url',{
params:{
name:'xxx',
age:18
}
} //delete请求参数在request body中
axios.delete('url',{
data:{
name:'xxx',
age:18
}
})
2.使用form表单,提交时按钮使用了button标签但未添加type属性,点击提交会刷新页面。
原因:form表单下的按钮在没有指定type类型的时候,button会有一个默认的type="submit"
解决办法:1.添加type="button"属性 <button type="button">确认</button>
2.使用<input type="button"/>
3.button点击事件里阻止默认行为,event.preventDefault()
4.如果配合UI框架如element等,请使用框架封装的button按钮,如 el-button
3.使用reduce方法同时实现map和filter
假设有一个数组,你需要更新它的项并且过滤出一部分,如果先使用map后使用filter的话,数组将被遍历两次,此时用reduce方法更方便。
//将数组的值翻倍并且筛选出大于40的数据项
var arr = [10,20,30,40,50];
const result = arr.reduce((list,curNum)=>{
curNum = curNum * 2;
if(curNum > 40){
list.push(curNum);
}
return list;
},[]) result; //[60,80,100]
4.使用reduce计算数组中元素出现的次数
//计算数组中元素出现的次数
var arr = ["a","b","c","d","c","a","e","b"];
var result = arr.reduce((obj,item)=>{
if(item in obj){
obj[item]++
}else{
obj[item] = 1
}
return obj
},{})
console.log(result) //{a: 2, b: 2, c: 2, d: 1, e: 1}
5.使用reduce将对象的key转换成中文
6.使用解构来交换参数数值
//以往我们通常使用 var temp = a; a = b; b = temp;
//来交换两个参数的数值,现在我们不妨用ES6提供的变量的解构赋值来代替。 let param1 = 1;
let param2 = 2;
[param1,param2] = [param2,param1];
console.log(param1) //2;
console.log(param2) //1;
7.深拷贝
function deepCopy(source) {
let target = Array.isArray(source) ? [] : {}
for (var k in source) {
if (typeof source[k] === 'object') {
target[k] = deepCopy(source[k])
}else {
target[k] = source[k]
}
}
return target
}
8.封装cookie方法
//set cookie
export function setCookie(name, value, expiredays) {
let exdate = new Date();
exdate.setTime(exdate.getTime() + expiredays*24*60*60*1000);
document.cookie = name + '=' + encodeURI(value) + ((expiredays == null) ? '' : '; expires = ' + exdate.toGMTString());
} //get cookie
export function getCookie(name, cookieText = '') {
cookieText = document.cookie;
const reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');
const arr = cookieText.match(reg);
let ret = '';
if (arr) {
ret = decodeURIComponent(arr[2]);
}
return ret;
} //delete cookie
export function deleteCookie(key) {
let name = decodeURI(key);
let expires = new Date(0);
document.cookie = name + '=' + '; expires = ' + expires.toUTCString();
}
9.格式化日期为YYYY-MM-DD HH:MM:SS格式
function formatDate(time){
var date = new Date(time);
var year = date.getFullYear(),
month = date.getMonth() + 1,//月份是从0开始的
day = date.getDate(),
hour = date.getHours(),
min = date.getMinutes(),
sec = date.getSeconds();
month = month < 10 ? '0' + month : month
day = day < 10 ? '0' + day : day
hour = hour < 10 ? '0' + hour : hour
min = min < 10 ? '0' + min : min
sec = sec < 10 ? '0 '+ sec : sec
var newTime = year + '-' +
month + '-' +
day + ' ' +
hour + ':' +
min + ':' +
sec;
return newTime;
}
formatDate(Date.now()) //2019-07-04 17:27:28
前端开发中的一些tips(持续更新)的更多相关文章
- spring boot项目开发中遇到问题,持续更新
1.JPA中EntityManager不能执行建表语句,提示要加事务Error:javax.persistence.TransactionRequiredException: Executing an ...
- 【Go】开发中遇到的坑——持续更新
关于CGo多语言编译 问题出现在将openCV封装到go语言的时候.在编译时需要设置 CGO_ENABLED=1 GOOS=linux GOARCH=amd64 go build -o xxx mai ...
- 【转】分享前端开发中通过js设置/获取cookie的一组方法
在前端开发中,通常都需要获取并记录用户的某些操作设置,这样可以使用户下一次访问网站时不用进行重复的调整设置同一个功能. js方法的完整代码如下: var cookie = { set:function ...
- Web前端开发中的MCRV模式(转)
作者: izujian 来源: baiduux 摘要:针对前端开发中基于ajax的复杂页面开发所面临的代码规模大,难以组织和维护,代码复用性.扩展性和适应性差等问题,本文尝试以MVC思想为 基础,结 ...
- iOS:开发常用GitHub开源项目(持续更新)
IOS开发常用GitHub开源项目(持续更新) 数据类 开源库 作者 简介 AFNetworking Mattt 网络请求库 ASIHTTPRequest pokeb 网络请求库 Alamofire ...
- web前端开发中常用的尺寸和位置
我们在日常web前端开发过程中,会经常用到各种尺寸和位置.通常是js做动画的时候.轮播图,滚屏动画,粒子,碰撞检测,拖拽,滚动加载等等.这里我将常用的尺寸和位置的获取进行总结,不包括canvas,SV ...
- px em rem在WEB前端开发中的区别
我们都知道基于像素的字体大小所用的单位是px,但是随着响应式设计的不断火热,基于相对字体大小的单位em变开始流行起来.当然,rem也在Web前端开发人员讨论如何更好设置字体大小的讨论话题之列.是不是需 ...
- 一探前端开发中的JS调试技巧
前言 调试技巧,在任何一项技术研发中都可谓是必不可少的技能.掌握各种调试技巧,必定能在工作中起到事半功倍的效果.譬如,快速定位问题.降低故障概率.帮助分析逻辑错误等等.而在互联网前端开发越来越重要的今 ...
- WEB前端开发中的图片压缩
web前端开发中,图片的重要性不言而喻,而由于一些图片的大小加上现在国内的网速不给力等种种原因,我们非常有必要对网站使用的图片进行压缩,压缩图片必然会带来图片质量的损失,我们要尽可能的在质量降低很小的 ...
随机推荐
- 系列免费课程汇总(Java、单体应用、微服务、物联网、SaaS)
概述 2020年春节尽在眼前,又忙碌了一年的你一定有很多收获:是升职加薪,还是收获爱情?是买房置业,还是新添人口? 我在2019年的最大收获是:我的第二枚千金诞生,使我顺利加入富豪行列! 新年伊始我们 ...
- 《爬虫学习》(四)(使用lxml,bs4库以及正则表达式解析数据)
1.XPath: XPath(XML Path Language)是一门在XML和HTML文档中查找信息的语言,可用来在XML和HTML文档中对元素和属性进行遍历. 工具:扩展商店里搜索:XPath ...
- 团队作业-Alpha版本发布2
团队项目-系统设计 这个作业属于哪个课程 https://edu.cnblogs.com/campus/xnsy/GeographicInformationScience/homework 这个作业要 ...
- Dynamics email的subject标题出现 CRM:0000xxxx
怎样移除email subject标题中出现的CRM:0000xxxx Settings->Administration->System Settings->Email->Un ...
- Python脚本通过ftp协议移植文件
需求 项目需要定时移植多个客户服务器的文件到公司服务器上,确保文件定时同步和生成监控日志 机制原理 1.客户和公司服务器同时安装vpn,绕过复杂的网关,linux下使用的OpenVPN 2.服务器定时 ...
- 【WPF学习】第二十六章 Application类——应用程序的生命周期
在WPF中,应用程序会经历简单的生命周期.在应用程序启动后,将立即创建应用程序对象,在应用程序运行时触发各种应用程序事件,你可以选择监视其中的某些事件.最后,当释放应用程序对象时,应用程序将结束. 一 ...
- Centos 7 最小化时间服务部署配置
基本原理 Centos 7 我所了解有两种时间服务,NTPD与chronyd:两者对Centos 7 的支持都很好,有对chrony非常夸赞的,不过我这里只讲ntpd:有对chrony有想法的可以自行 ...
- Docker三剑客之swarm
简介 swarm是一种docker集群管理工具,跟三剑客前两者不同的是:compose是一种统一编排的工具,machine是一种远程控制工具,swarm则是将多个docker主机映射成一个docker ...
- JVM性能分析 | 一次生产系统Full GC问题分析与排查总结
一次生产系统Full GC问题分析与排查总结 背景 最近某线上业务系统生产环境频频CPU使用率过低,频繁告警,通过重启可以缓解,但是过了一段时间又会继续预警,线上两个服务节点相继出现CPU资源紧张,导 ...
- tricky c++ new(this)
题目如下:问下列代码的打印结果为0吗? #include <stdlib.h> #include <iostream> using namespace std; struct ...
