![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
前端
my_love_download
https://gitee.com/lh_code_store
展开
-
实现bind
bindbind()创建一个新的函数,bind()被调用的时候,新函数的this,会被指向bind()的第一个参数,其他参数作为新函数的参数被调用实现myBindFunction.portotype.myBind = function(context, ...args) { const func = this; args = args ? args : []; return newFunc function (...newArgs) { if (this instanceof newFunc原创 2021-08-19 14:09:55 · 157 阅读 · 0 评论 -
手动实现apply
apply方法调用一个具体指定的this值的函数,接受一个为数组的参数手动实现applyFunction.portotype.myApply = function (context, args = []) { let cxt = context || window; let func = new Symbol(); cxt[func] = this; const result = args.length > 0 ? cxt[func](...args) : cxt[func](); d原创 2021-08-17 17:09:56 · 141 阅读 · 0 评论 -
手动实现call
call的特点使用一个指定的this值和单独给出的一个或者多个参数来调用一个函数自定义实现call/// 定义在原型上,方便调用Function.prototype.call = function(context, ...args) { // 当this为null或者为undefined时,this指向window let cx = context || window; // 避免函数名与上下文冲突,使用Symbol定义 let func = new Symbol(); cx[func]原创 2021-08-16 17:48:18 · 167 阅读 · 0 评论 -
flutter常用组件
记录开发中常用和二次封装的flutter组件圆形按钮Container( child: InkWell( onTap: () { // todo }, child: CircleAvatar( child: Text('接听'),原创 2021-05-10 19:09:00 · 127 阅读 · 0 评论 -
Component、PureComponent、Function Component三种组件的特点复习
import React, { Component, PureComponent } from 'react'// 类组件class Cmp extends Component { render() { return ( <div> com </div> ) }}// pure类组件class PruCom extends PureCompon原创 2021-03-20 17:46:38 · 380 阅读 · 0 评论 -
前端优化之Nginx配置
#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events {worker_connections 1024;}http {include mime.types;default_type applicatio原创 2020-11-15 11:23:49 · 234 阅读 · 0 评论 -
记录一次解决选择路线时的时间重叠问题
今天同学问了我一个需求,路线选择时的时间重叠问题,这里记录一下解决方案,有类似需求时直接使用 function dateRepet(){ // 所有的开始时间 let start = ['2019-02-03 10:01:38','2019-02-03 09:28:12']; // 所有的结束时间 let end = ['2019-02-03 10:27:21','2019-02-03 21:28:13']; // 排序原创 2020-09-24 13:10:21 · 306 阅读 · 0 评论 -
js实现数据绑定
使用js实现一个简单数据绑定function dataBind(obj, fn) { for (let key in obj) { Object.defineProperty(obj, key, { set(newValue) { if (this.value !== newValue) { this.value = newValue; }原创 2020-09-22 10:50:53 · 1115 阅读 · 0 评论 -
xss攻击的防御
要防御xss的攻击,首先我们需要知道什么是xss攻击?它是怎么进行攻击的?然后再去防御它!xss攻击是什么?简单来说就还是攻击者通过利用网页开发留下的漏洞,通过巧妙的方式注入恶意指令代码到网页中,使得用户加载并执行者段恶意的代码,攻击成功之后,攻击者会获取到用户的私人网页内容、会话和cookie等!然后攻击者会利用获取到的信息,来进行一些恶意的操作来破坏网站xss是怎么进行攻击的?存储型:恶意代码被当作正常数据存储到数据库中,当用户正常操作时,恶意代码就会从数据库中取出来.反射型:恶意代码被表单原创 2020-08-31 18:18:24 · 135 阅读 · 0 评论 -
数组之every
every的作用确定数组中的每一项的结果都满足所写的条件的时候,就会返回true,否则返回falseevery的使用const arr = [1, 2, 3, 4, 5, 6];// 结果是false,因为存在比3小的数const result = arr.every(x => { return x > 3});every有一点需要注意,就是在数组是空的时候,一切情况都会返回trueconst arr = [];// 不管条件是什么,这里的返回值都会是true----因为数原创 2020-08-28 08:01:06 · 2061 阅读 · 0 评论 -
react总结-----style的写法
本篇文章复习在react中style的4种写法1. 内联式(不推荐)import React, { Fragment } from "react";class Style extends React.Component { constructor(props) { super(props); } render() { const txtColor = { color: '#F00' } return ( <Frag原创 2020-06-21 18:28:33 · 3721 阅读 · 0 评论 -
JS之深拷贝
开发中使用深拷贝的时候还是比较多的,我们只会对复杂类型进行深拷贝,其中原因就是,简单类型赋值,变量会指向新的地址!复杂类型进行赋值,不会产生新的地址,两个变量指向的是同一个地址,一个变,另一个也会变!这个时候就有需要做深拷贝!方法1. JSON对象的俩个方法JSON.parse(JSON.stringify(obj))弊端:对象中有时间对象,转化之后,时间对象的值的类型是字符串类型对象中有Error和RegExp对象,转化之后,Error和RegExp对象的值变成null原创 2020-06-03 14:37:32 · 108 阅读 · 0 评论 -
React实现手写签名---react-signature-canvas
使用react-signature-canvas实现手写签名1. 首先安装插件npm install react-signature-canvas --save2.组件实现import React, { Fragment } from "react";import ReactDOM from "react-dom";import SignatureCanvas from "react-signature-canvas";import "../style/electronicSignature原创 2020-05-28 10:22:29 · 4061 阅读 · 3 评论 -
百度地图---------获取两个坐标之间的点
通过两个坐标,获取这两个坐标点中间的坐标点// 已知的两个坐标点 pointArr = [new BMap.Point(113.854687, 22.502549), new BMap.Point(113.8429946899414, 22.499418258666992)]; // 获取两个坐标点之间的位置 getMidpoiont() { const lngca = (Math.max(parseFloat(this.pointArr[0].lng), parseFlo原创 2020-05-20 09:31:18 · 1820 阅读 · 0 评论 -
angular2集成手写签名
项目中设计到审核功能,在审核的时候需要审核人进行一个签名,这里使用的angular2-signaturepad,集成的时候可以使用npm安装npm install angular2-signaturepad -- save安装完成之后,在模块中导入import { SignaturePadModule } from 'angular2-signaturepad';组件引入 <s...原创 2020-04-30 14:45:05 · 1272 阅读 · 0 评论 -
mui实现手写签名(app)
关于在手机端实现手写签名!业务有审批功能,在审批的时候要求可以手写签名,jSignature可以使用,下面记录使用方式1 .定义画布标签<div id="mySignature"></div>写字的时候就是在这个id内的Canvas上面去写的!2....原创 2020-04-30 14:33:30 · 1374 阅读 · 0 评论 -
angular使用全局监听关闭下拉
1.首页的左上角需要图片来显示消息总数,点击图标会出现一个下拉来展示消息,这个时候在图标上进行展开和关闭是有效的,但是这里因为是在首页中,在用户的实际操作过程中,可能不会通过该图标进行关闭,这个时候就做了,如果组件处于下拉状态,并且点击了页面其他任何位置,就将下拉组件关闭!全局监听 @HostListener('document:click', ['$event.target']) clo...原创 2020-04-01 15:23:05 · 390 阅读 · 0 评论 -
moment中使用到的时间格式化积累
1.将时间转化为—年月日时分秒YYYY-MM-DD HH:mm:ssmoment(new Data()).format('YYYY-MM-DD HH:mm:ss')原创 2020-03-26 09:54:03 · 903 阅读 · 0 评论 -
数组去重
总结一下数组去重的方法常规解决方法function removal(arr) { let result = []; for(let i = 0; i < arr.length; i++) { if(result.indexOf(arr[i]) == -1) { result.push(arr[i]); } } return result;}使用redu...原创 2020-03-02 17:58:46 · 102 阅读 · 0 评论 -
一个实现事件委托的简单示例
在实际开发中很多时候会遇到未知行数的问题,这个时候需要在未知行中去添加事件,这个时候我们可以使用事件委托(事件代理),其原理就是JS中事件流的事件冒泡和捕获!这里稍微提一下JS的事件冒泡和事件捕获事件捕获事件捕获----就是当你点击一个子元素的时候,会从你点击的子元素的父元素开始一层一层的往内部走,一直走到你所点击的这个子元素(找到子元素一般称之为处于目标的阶段),找到目标之后就会开始执行事件...原创 2020-02-29 17:23:05 · 223 阅读 · 0 评论 -
angular使用ng-content
在子组件中定义ng-content在父组件中使用使用的方式要跟定义的保持对应子组件中使用 select="header" 定义的,在父组件使用时:<header></header>子组件中使用 select=".ex1" 定义的,在父组件使用时:<div class="ex1"></div>子组件中使用 n...原创 2019-08-19 13:55:46 · 177 阅读 · 0 评论 -
angular生命周期函数详解
原创 2019-08-19 14:46:17 · 197 阅读 · 0 评论 -
js-原型和原型链
在学习原型和原型链的时候,我们首先要知道,数组,函数,对象都是可以自由的去拓展属性的,它们都有一个属性叫__proto__,这个属性我们一般称之为隐式原型(就是一个普通的对象);所有的函数都有一个prototype的属性,一般我们称之为显示属性(一个普通的对象);在数组,函数,对象中,他们的__proto__属性都是指向他的构造函数的prototype属性,在需要找到对象的一个属性的时候,但是在该...原创 2019-08-20 09:57:56 · 114 阅读 · 0 评论 -
js-数组方法复习和笔记
// 数组方法之every 数组内的值是否都是大于10,是则返回 true;否则返回 falsevar arr = [1, 12, 11, 23, 52, 111, 1256, 14, 56, 52, 55, 52];arr.every(function(item) {return item > 10;});/* fill() 方法用一个固定值填充一个数组中从起始索引到终...原创 2019-08-20 17:01:30 · 123 阅读 · 0 评论 -
VS CODE 开发angular 报错 Cannot find module 'bug-versions/package.json' 解决方案
今天在从码云上下载了项目上的代码,在本地使用cnmp安装依赖的时候,发现报了错误---------Cannot find module 'bug-versions/package.json解决方案是:使用npm install --save-dev 自动配置package.json,然后会自动安装所需的依赖...原创 2019-08-21 13:56:36 · 13973 阅读 · 2 评论 -
前端代码调试常用状态码
200:请求成功400:客户端发送的请求,服务器无法识别(服务器识别不了发送的请求)403:服务器可以收到请求,但是不做回应(多数是跨域问题)404:请求地址错误500:发送请求后.服务器报错503:服务器连接数量过多...原创 2019-08-21 16:42:44 · 241 阅读 · 0 评论 -
npm安装淘宝镜像和yarn
安装淘宝镜像npm install -g cnpm --registry=https://registry.npm.taobao.org安装yarnnpm install -g yarn原创 2019-08-21 22:19:32 · 459 阅读 · 0 评论 -
记一次odata常用操作符
操作关键字 详解 等于C#中的操作符 eq 相等 == ne 不相等 != gt 大于 > ge ...原创 2019-08-23 08:16:58 · 420 阅读 · 0 评论 -
CSS之水平垂直居中
代码<div class='page-not-find'><h1 class='page-not-find-text'>404!页面不存在</h1></div>第一种水平垂直居中方式<style>.page-not-find { width:300px; height:300px; display: fle...原创 2019-08-23 13:58:21 · 96 阅读 · 0 评论 -
防抖和节流解决方案
防抖的概念在一个事件触发之后,设置定时器,定时器给的时间是n,若是在n秒之内该事件再次发生,则定时器会被清零,重新开始计时,否则执行该事件的函数.(提高性能)下面直接上代码.防抖之非立即执行函数(普通函数) // fun 需要防抖的函数 // time 时间 function antiShake(fun, time) { let timer = null; return fu...原创 2019-08-26 15:35:32 · 499 阅读 · 0 评论 -
react实现双向绑定
react没有提供类似于angular中[(ngModel)]和vue中v-mode的l双向绑定,最近在学习react,以下是我实现数据的双向绑定的方式 class TextChange extends React.Component { render() { return ( <div className="textChange"> <...原创 2019-08-28 11:30:26 · 236 阅读 · 0 评论 -
react项目在webpack中配置CSS模块化
CSS模块化今天在学习react的过程学习了一个新的知识-----css模块化之前在学习Vue的时候,为了让css样式只在当前组件中生效,可以在使用scoped指令限制我们的样式只在当前组件生效,当我们给每一个组价添加scoped时,就相当于实现了CSS的模块化,在需要修改第三方组件的样式的时候,根据常用的css预加载器的不同,分别提供了** ’ >>>’ ** 和 ‘/...原创 2019-08-29 22:57:55 · 840 阅读 · 1 评论 -
React父子之间的数据传递详解----父传子&&子传父
父组件class Father extends React.Component { constructor(props) { super(props); this.state={ name: ' 我是父组件的值,我将把我的值给子组件' } } // 接受子组件传递过来的值 childToFatherValue(data) { this.setSt...原创 2019-09-02 09:15:59 · 866 阅读 · 0 评论 -
Angular使用Directive自定义指令-------不可输入空格( @HostBinding&&@HostListener)
使用angular的自定义指令解决输入框不可以输入空格的问题1.在开发中有很多的数据框,输入空格是没有意义的,我们一般会不允许使用者输入空格对于一般的使用输入框的地方一般为表单和搜索,这里有两种解决方案,1.自定义表单验证和输入框验证;2.使用自定义指令的方式来解决问题;自定义表单验证和输入框验证已经使用过了,这次使用Directive来解决问题1.新建指令文件(input...原创 2019-09-24 08:27:17 · 348 阅读 · 0 评论 -
前端知识总结和记载-------navigator&&history (Browser)
一、获取浏览器信息可以使用Navigator对象获取浏览器的个中信息function getBrowserInfo() { const browserName = navigator.appName // 浏览器的名称 const browserVersion = navigator.appVersion // 浏览器的版本信息 const browserCodeName =...原创 2019-09-26 09:18:13 · 93 阅读 · 0 评论 -
ES6数组之reduce
工作中遇到了数组对象去重的问题,第一想法依旧是for循环,但是为了让自己的代码跟优雅一些,就到网上查了一下,果然已经有大佬走在前面了,既然如此那就更需要研究以下了,以下是我的理解.首先在MDN上学习了以下这个函数的具体含义.reduce有四个参数分别是:Accumulator (acc) (累计器)Current Value (cur) (当前值)Current Index (idx...原创 2019-09-27 14:56:56 · 723 阅读 · 0 评论 -
js闭包
首先我们知道在js中是存在全局变量和局部变量的,既然有全局和局部之分,那么也就有了变量的作用域的感念1.var a = 'hello world';这个a就是全局变量2.function test() { b= 'hello world';}console.log(b);// hello world这里的b因为没有使用var 所以也是全局变量3.functi...原创 2019-08-19 09:16:48 · 55 阅读 · 0 评论