自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 2020-05-15

我已经转战掘金了,欢迎各位大佬降临!https://juejin.im/entry/5ebe32fcf265da7bc8593c2c掘金最新文章 请搜索,前端刘亦菲,哈哈

2020-05-15 23:12:17 147

原创 如何检测点击React组件外部

/** * Component that alerts if you click outside of it */class OutsideAlerter extends Component { constructor(props) { super(props); this.setWrapperRef = this.setWrapperRef.bi...

2019-07-02 16:07:05 321

原创 js 理解

https://blog.sessionstack.com/tagged/tutorial原文追踪 预览https://blog.sessionstack.com/how-does-javascript-actually-work-part-1-b0bacc073cfjs 引擎(engine) 运行(runtime) 堆栈(call stack) 概览https://b...

2019-03-18 11:07:07 212

原创 es6 Map set应用

// 我想要评论!!!// 我想要赞!!!// 看过的帅哥美女们,点一下,谢谢!!!!import React, { Component } from 'react';import { Button, message, Spin } from 'antd';import { connect } from 'react-redux';import { CrModal, CrTa...

2019-02-27 10:27:21 333 1

原创 HOC ref & static methods

以前你在父组件中使用<component ref="component"/>的时候,你可以直接通过this.refs.component进行获取。但是因为这里的component经过HOC的封装,已经是HOC里面的那个component了,所以你无法获取你想要的那个ref(wrappedComponent的ref)。要解决这个问题,这里有两个方法:a) 像React Redux...

2019-02-15 11:42:08 224

原创 react 命名规范 书写顺序

on开头的事件 监听toggle开头的事件 切换state状态handle开头的事件 回调函数render 自定义render 组建书写顺序static lifeCyclecustomer MethodscustomerRenderrender(lifeCycle)  ts_开头 私有方法  引入书写顺序libalias...

2019-02-12 13:02:26 1761

原创 useState

/** * type :状态 * editable(可以编辑) span onclick * editing(正在编辑) input onchange save * uneditable(不可以编辑 ) chirdren */const useEditing = (initialState) => { const [editing, setEditing] = useS...

2019-02-12 11:59:58 1381

转载 dva 工厂模式 modal 和 动态router应用

添加了几个复杂场景的demo,增加了单元测试很实用 贴切场景

2019-01-15 10:20:19 793

转载 React 高阶组件

 原文地址前言本文代码浅显易懂,思想深入实用。此属于react进阶用法,如果你还不了解react,建议从文档开始看起。我们都知道高阶函数是什么, 高阶组件其实是差不多的用法,只不过传入的参数变成了react组件,并返回一个新的组件.A higher-order component is a function that takes a component and retur...

2019-01-09 15:00:23 139

原创 react组件书写规范

组件的私有方法都用 _ 开头,所有事件监听的方法都用 handle 开头。把事件监听方法传给组件的时候,属性名用 on 开头组件的内容编写顺序如下:static 开头的类属性,如 defaultProps、propTypes。构造函数,constructor。getter/setter(还不了解的同学可以暂时忽略)。组件生命周期。_ 开头的私有方法。事件监听方法,handle*。...

2019-01-07 16:27:26 194

原创 正确react组建的单元测试方法

链接In order to testLockScreen, you must first understand what itsContractis. Understanding a component’s contract is the most important part of testing a React component. A contract defines the ex...

2018-12-28 11:53:58 222

原创 jest fs 写自定义 collectCoverageFrom 指定文件 检查测试覆盖率上

const fs = require('fs');const path = require('path');//读取指定文件夹下的全部文件,可通过正则进行过滤,返回文件路径数组function readAllFile(root, reg, aaa) { var resultArr = []; if (fs.existsSync(root)) { var st...

2018-12-26 13:59:41 3925

原创 jest react&& ts

const webpackConfig = require('./creams.config.js');const aliasList = webpackConfig.alias;delete aliasList['@'];const moduleNameMapperConfig = { "\\.(jpg|jpeg|png|gif|eot|otf|webp|svg|ttf|woff|w...

2018-12-25 16:04:23 444

原创 react16 ref 自适应宽高

class Card extends React.Component { constructor(props) { super(props); this.state = { width: props.width || -1, height: props.height || -1, } } componentDidMount() { ...

2018-12-18 12:57:38 1143

原创 JavaScript 深度优先遍历 广度优先遍历 && DOM应用方法

深度优先遍历的递归写法function deepTraversal(node) { var nodes = []; if (node != null) { nodes.push(node); var children = node.children; for (var i = 0; i < children.leng...

2018-12-13 15:33:18 538

转载 react diff算法

react diff算法浅析深度剖析:如何实现一个 Virtual DOM 算法理解 Virtual DOM  认真看上面两个 博文 diff算法作为Virtual DOM的加速器,其算法的改进优化是React整个界面渲染的基础和性能的保障,同时也是React源码中最神秘的,最不可思议的部分1.传统diff算法计算一棵树形结构转换为另一棵树形结构需要最少步骤,如果使用...

2018-12-12 10:39:14 113

转载 函数式编程——入门笔记与React实践

函数式编程——入门笔记与React实践最近在看近来很火的函数式编程教程《Mostly Adequate Guide》 (中文版:《JS函数式编程指南》),收获很大。对于函数式编程的初学者,这本书不仅深入浅出,更让人感受到函数式编程的优势和美感,强烈推荐给想要学习函数式编程的朋友。这篇文章是我个人的一个学习笔记,在总结知识的同时,也尝试以React组件的输入事件响应为例,用函数式编程去应对实...

2018-12-12 10:37:32 175

转载 Build Your Own React - Part 4: Lists and Keys

The last and final feature we'll add to Minimum Viable React are keys. By keys, I refer to the key attribute that you should assign to components or simple elements when rendering lists.Why are keys...

2018-12-12 10:34:43 259

转载 Build Your Own React - Part 3: State and Lifecycle

In this part, we'll add state, i.e. setState() method, to our framework. We can already build stateful applications by passing down props and callingMVRDom.render() each time the state changes. Howeve...

2018-12-12 10:34:12 181

转载 Build Your Own React - Part 2: Components

In this article, we pick up where we left off in part 1. Our first app isn't particularly impressive, but it works well and has some features crucial to a practical React implementation. For example, ...

2018-12-12 10:33:41 243

转载 Build Your Own React - Part 1: Simple Elements

Build Your Own React - Part 1: Simple Elements In this series of articles, we'll build a simple React-like framework. I call itMinimum Viable React, or MVR for short, because it implements all the...

2018-12-12 10:32:55 257

转载 virtual-dom原理与简单实现

前言如何实现一个 Virtual DOM 算法理解 Virtual DOM这两个一定要认真看目前广为人知的React和Vue都采用了virtual-dom,Virtual DOM凭借其高效的diff算法,让我们不再关心性能问题,可以随心所欲的修改数据状态。在实际开发中,我们并不需要关心Virtual DOM是如何实现的,但是理解Virtual DOM的实现原理确实有必要的。本文是参...

2018-12-11 11:52:58 123

原创 chunk bundle module的区别

https://webpack.docschina.org/glossary专业术语After spending a day digging into this I wanted to provide what I believe is a slightly more accurate answer. The webpack team has published a useful (and ...

2018-12-03 15:46:23 1822

原创 Reflect.ownKeys(obj) 和 Object.keys(obj) 区别

Object.keys() returns an array of strings, which are the object's own enumerable properties.Reflect.ownKeys(obj) returns the equivalent of:Object.getOwnPropertyNames(target). c...

2018-08-17 15:52:05 934

原创 修饰器

修饰器 就是面向对象 修饰器模式  在不改变原类的基础上给其添加功能function a(){ console.log("a")}class b(){ console.log("b")}console.log(a(new b()));等同于@aclass b(){ console.log("b")}function a(){ ...

2018-08-16 14:27:55 191

转载 启用ES7的修饰器语法 create-react-app 支持修饰器

先npm run inject暴露webpack我们用create-react-app创建的项目时,并不能使用修饰器语法 修饰器语法是ES.next 2阶段特性。我在使用mobx时需要用@observable让属性被观测和组件观测变化@observer 使用路由时需要withRouter将路由信息传递个组件的props对象上等都需要用到修饰器语法。npm run inject启动后...

2018-08-16 10:11:41 2883

原创 react 学习3 redux

 万变不离其宗 记住这个数据流向图 就记住了reduxview发出一个action,action会通知store改变   store会自当触发reducer(计算),带 旧state和action 返回新的state给store  然后触发视图渲染reducer是一个纯函数  要动态将其分模块 利于管理  ,分离后需要合并 combineReducers 在createStore的...

2018-08-15 14:17:59 101

转载 react redux 解析

一个很厉害的人的git上看到的 点击观看 谢谢他了  不过观看的人记得给starhttps://github.com/ManiacHanz/Learning-Notes/tree/master/redux?tdsourcetag=s_pctim_aiomsg其实就是暴露了5个核心函数,也就是redux提供的核心apiexport { createStore, combineR...

2018-08-15 11:30:57 230

原创 react 学习2

React应用的构成模块:元素和组件在 JSX 当中的表达式要包含在大括号里。JSX 属性你可以使用引号来定义以字符串为值的属性const element = <div tabIndex="0"></div>;也可以使用大括号来定义以 JavaScript 表达式为值的属性:const element = <img src={user.av...

2018-08-02 18:01:40 126

原创 react 学习1

React 是什么?React 是一个采用声明式,高效而且灵活的用来构建用户界面的框架。 状态提升当你遇到需要同时获取多个子组件数据,或者两个组件之间需要相互通讯的情况时,把子组件的 state 数据提升至其共同的父组件当中保存。之后父组件可以通过 props 将状态数据传递到子组件当中。 受控组件子组件 不再拥有自身的状态数据了,从福罪案接受数据并将数据要改变的事件通...

2018-08-02 13:53:46 136

原创 vue 异步组建处理路由

import SwLoading from '@/components/sw-loading' import env from '@/common/env' let arrRouter = [ { name: 'AAAAA', url: 'page-aaaaa' }, { name: 'bbbbb', url: 'page-bbbb' }, ]; /** ...

2018-07-21 19:08:51 947

原创 js面向对象整理

webpack环境配置npm initnpm i 安装webpack  npm i webpack webpack-cli -D创建webpack.dev.config.js      定义入口文件 出口文件  npm i  看效果搭建服务 输出编译模板npm i webpack-dev-server -D引入node内置模块  path  输出html模板npm i ht...

2018-07-21 16:15:42 158

原创 前端存储之 Web SQL

web sql的简单的增删改查demo<!DOCTYPE html><html><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1,minimum-scale=1,ma

2018-07-20 11:59:10 1897 1

原创 xss攻击总结

xss攻击可以分成两种类型:非持久型xss攻击:顾名思义,非持久型xss攻击是一次性的,仅对当次的页面访问产生影响。非持久型xss攻击要求用户访问一个被攻击者篡改后的链接,用户访问该链接时,被植入的攻击脚本被用户游览器执行,从而达到攻击目的。持久型xss攻击:持久型xss,会把攻击者的数据存储在服务器端,攻击行为将伴随着攻击数据一直存在。可以分为三类:反射型:经过后端,不经过数据库存储型:经过后端...

2018-07-09 17:59:12 651

原创 vue 父子组建双向通信 .sync 修饰符

父组件改变数据可以改变子组件, 但是子组件的内容改变并不会影响到父组件可以通过2.3.0新增的sync修饰符来达到双向绑定的效果demo<template> <div class="hello"> //input实时改变wrd的值, 并且会实时改变box里的内容 <input type="text" v-model="wrd"> ..

2018-07-05 13:55:54 274

原创 vue.set- 最帅程序员

<template><!-- 取餐柜 购物车组件 --> <div class="cartcontrol-cupboard"> <div class="cart-decrease" @click.prevent="decreaseCart()"><img :src="reduce" a

2018-07-03 14:26:13 217

原创 vue router 路由心得

vue 路由文档import Vue from 'vue'import VueRouter from 'vue-router'Vue.use(VueRouter)// The matching uses path-to-regexp, which is the matching engine used// by express as well, so the same matching...

2018-06-21 14:37:36 694

原创 filter blur 实现 模糊图片效果

<img src="img.jpg" class="blur" />css 如下:.blur { filter: blur(6px); -webkit-filter: blur(6px); /* chrome, opera */ -ms-filter: blur(6px); -moz-filter: blur(6px); filter:progi...

2018-05-30 15:50:18 1531

原创 竖向文字 js 无缝滚动

<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0">

2018-05-22 09:23:11 1231

原创 vue 文字无缝滚动 利用style 绑定

<template><div class="section"> <div>1 显示完后再显示</div> <div class="example"> <div class="marquee_box"> <div class=&q

2018-05-19 11:52:30 5325 3

空空如也

空空如也

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

TA关注的人

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