自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(25)
  • 收藏
  • 关注

原创 用div实现编辑器的功能,可ctrl+c使用ctrl+v粘贴进去

废话不多说,直接上代码吧,自己封装的一个小组件,主要是利用contentEditable="true"属性设置div可编辑啊,可以复制文字,图片什么的,我这边是做了样式的处理,返回值是一个dom字符串。代码如下,不懂的留言:import React from 'react';import { connect } from 'react-redux';import moment from 'moment';import PropTypes from 'prop-types';import { f

2022-03-09 15:32:18 677

原创 本地assets的图片文件,在使用的时候,本地可以展示,打包404的解决方案

<img style={{ width: '100%', height: '100%' }} src='../../../../../assets/images/doctor.png' />代码这样使用,不管是使用相对路径还是绝对路径,打包都是不可解决方案:webpack的配置,如下,在loader里加上{ test: /\.(jpe?g|png|gif)$/i, //图片文件 use: [ { .

2021-12-02 15:51:20 1050

原创 js实现一个简单的发布订阅模式

/** * 简单发布订阅 * @param {Object}} callback * @returns */export const Observable = { queue: {}, subscribe: function (event, callback) { if (!this.queue[event]) { this.queue[event] = []; } this.queue[event].push(callback); r.

2021-11-25 17:37:20 304

原创 js将平铺展开的数据树化

/** * 将数据序列化为树形结构 * @param {Array} list 树结构数据 * @param {String} id 用于通用遍历树,每种树结构的id取名可能不一样 * @param {Srting} name 用于通用遍历树,每种树结构的pid取名可能不一样 * @param {Srting} name 用于通用遍历树,每种树结构的name取名可能不一样 * @return {[type]} [description] */function se.

2021-11-25 16:23:46 563

原创 身份证比较全的正则校验方法(react)

certificate(rule, value, callback, form) { const provs = { 11: '北京', 12: '天津', 13: '河北', 14: '山西', 15: '内蒙古', 21: '辽宁', 22: '吉林', 23: '黑龙江 ', 31: '上海', 32: '江苏', 33: '浙江', 34: '安徽.

2021-11-25 16:21:59 3021

原创 js浅拷贝与深拷贝的区别和实现

如何区分深拷贝与浅拷贝,简单点来说,就是假设B复制了A,当修改A时,看B是否会发生变化,如果B也跟着变了,说明这是浅拷贝,拿人手短,如果B没变,那就是深拷贝,自食其力。1. 如果是基本数据类型,名字和值都会储存在栈内存中var a = 1;b = a; // 栈内存会开辟一个新的内存空间,此时b和a都是相互独立的b = 2;console.log(a); // 1当然,这也算不上深拷贝,因为深拷贝本身只针对较为复杂的object类型数据。2. 如果是引用数据类型,名字存在栈内存

2021-11-25 15:53:16 51

原创 前端通过js实现复制功能

<div>快递单号:<span id='order_number'>k190037693773</span> <i @click="copy" class="el-icon-document-copy"></i></div>scriptcopy(){ var strs0=document.getElementById("order_number").innerText; ...

2021-11-25 11:46:50 355

原创 es6总结

01、问:ES6是什么,为什么要学习它,不学习ES6会怎么样?答:ES6是新一代的JS语言标准,对分JS语言核心内容做了升级优化,规范了JS使用标准,新增了JS原生方法,使得JS使用更加规范,更加优雅,更适合大型应用的开发。学习ES6是成为专业前端正规军的必经之路。不学习ES6也可以写代码打鬼子,但是最多只能当个游击队长。02、问:ES5、ES6和ES2015有什么区别?答:ES2015特指在2015年发布的新一代JS语言标准,ES6泛指下一代JS语言标准,包含ES2015、ES2016、ES20.

2021-11-25 11:42:08 364

原创 JavaScript总结

1.JavaScript简介 JavaScript 最开始是专门为浏览器设计的一门语言,但是现在也被用于很多其他的环境。 如今,JavaScript 已经成为了与 HTML/CSS 完全集成的,使用最广泛的浏览器语言。 有很多其他的语言可以被“编译”成 JavaScript,这些语言还提供了更多的功能。建议最好了解一下这些语言,至少在掌握了 JavaScript 之后大致的了解一下。 2. 变量我们可以使用 var、let 或 const 声明变量来存储数据。 le.

2021-11-25 11:40:55 507

原创 Mac中使用npm install 或者 yarn install下载报gyp错误

Mac中使用npm install 或者 yarn install下载产生如下错误使用以下几个步骤即可解决,亲测有效1.sudo rm -rf ~/.node-gyp2.sudo npm cache clean -f3.sudo npm install -g n4.sudo n stable4.sudo npm i --unsafe-perm

2021-11-17 17:56:32 681

原创 css在原生table实现antd 里Table的固定列

1.定义表格列,给要固定的列加样式position:sticky2.渲染表头3.给表格的tbody里的要固定的操作列加上position:sticky,还有right,top,zIndex注意:给要固定的列加position:sticky,设置right,top,等位置,要固定的列给z-index:2,其余不要固定的列加上z-index:1,即可实现固定列...

2021-08-19 17:49:59 963

原创 用js实现new的过程

构造函数function Person(name, age, job) { this.name = name; this.age = age; this.job = job; this.sayName = function() { console.log(this.name); }}var person1 = new Person('langgan', 100, 'software enginner');var person2 = new Person('test', 2.

2021-07-16 15:34:21 291

原创 js中es5和es6的继承

一、es5继承原型链实现思路:通过原型继承多个引用类型的属性和方法,简单点说就说子类的原型是父类的实例function SuperType() { this.property = true;}// 获取父类property属性SuperType.prototype.getSuperValue = function() { return this.property;}function SubType() { this.subproperty = false;}// 如此

2021-07-16 15:17:05 118

原创 创建对象的几种方法

首先,说起对象,我们先来看下以下问题粉笔打印出什么?Array instanceof ObjectObject instanceof Object;Function instanceof Object;String instanceof Object;Number instanceof Object;Boolean instanceof Object;Array instanceof FunctionObject instanceof Function;Function instan

2021-07-16 14:45:06 85

转载 Javascript常用的设计模式详解

原文链接:https://www.cnblogs.com一:理解工厂模式工厂模式类似于现实生活中的工厂可以产生大量相似的商品,去做同样的事情,实现同样的效果;这时候需要使用工厂模式。 简单的工厂模式可以理解为解决多个相似的问题;这也是她的优点;比如如下代码:function CreatePerson(name,age,sex) { var obj = new Object(); obj.name = name; obj.age = age; obj...

2021-07-14 15:11:21 209 1

原创 将数组序列化成tree结构

前言:在日常开发中,经常会对一些平铺的数据进行序列化,下面是个人的总结,写的一个方法,希望对大家有帮助,有问题或者更好的解决方法的话,希望大家多提建议。1、新建一个util.js文件,定义一个序列化的方法:/** * 将数据序列化为树形结构 * @param {Array} list 树结构数据 * @param {String} id 用于通用遍历树,每种树结构的id取名可能不一样 * @param {Srting} name 用于通用遍历树,每种树结构的pid取名可能不一样

2021-07-14 11:50:04 318

原创 8种CSS清除浮动的方法优缺点分析

前言:为什么清除CSS浮动这么难?因为浮动会使当前标签产生向上浮的效果,同时会影响到前后标签、父级标签的位置及 width height 属性。而且同样的代码,在各种浏览器中显示效果也有可能不相同,这样让清除浮动更难了。解决浮动引起的问题有多种方法,但有些方法在浏览器兼容性方面还有问题。我根据自己的经验总结8种清除浮动的方法(测试已通过 ie chrome firefox opera,后面三种方法只做了解就可以了):1、父级div定义height<style type="text/css"&

2021-07-14 11:29:56 95

原创 出现跨域问题的原因及其解决方法

1、出现跨域问题的原因:同源策略2、同源策略三同协议相同 域名相同 端口相同同源策略目的 保证用户信息安全,防止恶意网站窃取数据。同源策略是必须的,否则cookie可以共享。3、同源策略目的保证用户信息安全,防止恶意网站窃取数据。同源策略是必须的,否则cookie可以共享。4、同源策略的限制范围cookie、localstorage、indexdb无法读取。 DOM无法获取。 ajax请求不能发送5、规避策略cookie:设置document.do...

2021-07-12 18:40:10 16408

原创 cookie、 sessionStorage 、localStorage

sessionStorage用于本地存储一个会话(session)中的数据,这些数据只有在同一个会话中的页面才能访问并且当会话结束后数据也随之销毁。因此sessionStorage不是一种持久化的本地存储,仅仅是会话级别的存储。localStorage用于持久化的本地存储,除非主动删除数据,否则数据是永远不会过期的;cookie是网站为了标示用户身份而储存在用户本地终端(Client Side)上的数据(通常经过加密)。区别:cookie、session和localStorage的区别1

2021-07-12 18:27:57 207

原创 HTTP与HTTPS的区别

HTTP与HTTPS的区别  超文本传输协议HTTP协议被用于在Web浏览器和网站服务器之间传递信息,HTTP协议以明文方式发送内容,不提供任何方式的数据加密,如果攻击者截取了Web浏览器和网站服务器之间的传输报文,就可以直接读懂其中的信息,因此,HTTP协议不适合传输一些敏感信息,比如:信用卡号、密码等支付信息。  为了解决HTTP协议的这一缺陷,需要使用另一种协议:安全套接字层超文本传输协议HTTPS,为了数据传输的安全,HTTPS在HTTP的基础上加入了SSL协议,SSL依靠证书来验证服务器的

2021-07-12 18:26:10 74

原创 call、apply和bind方法的用法以及区别

call、apply、bind的作用是改变函数运行时this的指向,所以先说清楚this。以下是函数的调用方法:方法调用模式:当一个函数被保存为对象的一个方法时,如果调用表达式包含一个提取属性的动作,那么它就是被当做一个方法来调用,此时的this被绑定到这个对象。const a = 1;const obj1 = { a:2, fn:function(){ console.log(this.a) } } obj1.fn()

2021-07-12 18:22:42 84

原创 详解eventloop事件循环机制

前言:了解js的事件循环机制,了解其底层运行的原理,让我们以不变应万变。还有一点也很重要,那就是应对各大互联网公司的面试,懂其原理,题目任其发挥,哈哈哈,再也不用担心啦。JS 并发模型与事件循环Stack 栈(执行栈)栈是一种数据结构,他是后进先出的,js函数调用形成了一个由若干帧组成的栈,看如下代码function foo(b) { let a = 10; return a + b + 11;}function bar(x) { let y = 3; retur

2021-07-12 17:52:21 237

原创 详解浏览器打开一个页面的过程

前言:在讲解浏览器打开页面过程之前,我们先了解下浏览器进程线程,这些知识点都是必要的铺垫线程与进程首先要说明的就是进程与线程的关系,这个只是大概讲一下不必深入的导论,如果想在服务端方面做深入研究的可以去详细研究我们先看定义进程 进程是cpu资源分配的最小单位(是能拥有资源和独立运行的最小单位) 线程 线程是cpu是调度的最小单位 (线程是建立在进程的基础上的一次程序运行单位,一个进程中可以有多个线程)单从定义上看根本无法理解,我们看网上举的一例子个进程 理解为一个工厂,工厂有它独立

2021-07-12 17:20:00 3713 1

原创 git 的使用 二(git的常用命令汇总)

1、代码提交的相关命令gitclone 远程仓库地址从远程仓库下载代码gitstatus.#查看当前工作区的修改gitadd*#跟踪新文件gitadd-u[path]#添加[指定路径下]已跟踪文件rm*&gitrm*#移除文件gitrm-f*#移除文件gitrm--cached*#停止追踪指定文件,但该文件会保留在工作区gitmvfile_fromfile_to#重命名跟踪文件gitlog#查看提交记录...

2021-07-09 17:22:22 89

原创 git的使用一(在日常开发中如何使用git进行代码管理的流程)

1、从远程拉取自己一个分支 git checkout -b 分支名 origin/远程要拉取的分支名 // 创建分支 git push origin 分支名 // 推分支到远程 git branch--set-upstream-to=origin/分支名 // 建立关联eg.从远程的master分支...

2021-07-09 16:48:59 142 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除