03 2020 档案

摘要:概述 switch语句对一个表达式求值,将结果与 case 子语句比较,如果匹配,则从 case 处的语句向下执行。 语法 break;语句是可选择的,如果遇到break;则会跳出整个switch语句。如果没有任何case匹配,则进入到default:的分支。default:分支也是可选的。 swi 阅读全文
posted @ 2020-03-31 23:03 剑仙6 阅读(205) 评论(0) 推荐(0) 编辑
摘要:今天,我们要讨论的是react router中Link传值的三种表现形式。分别为通过通配符传参、query传参和state传参。 ps:进入正题前,先说明一下,以下的所有内容都是在react-router V4的版本下。 1.通配符传参 Route定义方式: <Route path='/path/: 阅读全文
posted @ 2020-03-31 10:19 剑仙6 阅读(180) 评论(0) 推荐(0) 编辑
摘要:在react中,带有html格式的内容,会保留原有的标签样式,并不能正确展示。效果相当于Vue中的v-html // 2个{{}},第一{}代表jsx语法开始,第二个是代表dangerouslySetInnerHTML接收的是一个对象键值对; <div dangerouslySetInnerHTML 阅读全文
posted @ 2020-03-31 09:54 剑仙6 阅读(993) 评论(0) 推荐(0) 编辑
摘要:SPA单页应用的2种类型分页技术,常见于React、Vue等基于组件化开发的项目 1、纯前端分页 2、基于后台的分页 (1)纯前端分页 1、请求获取数据:一次性获取所有数据,翻页时不再发送请求 2、请求接口:不需要指定页面(pageNum)和每页数量(pageSize) 3、响应数据:所有数据的数组 阅读全文
posted @ 2020-03-30 16:14 剑仙6 阅读(233) 评论(0) 推荐(0) 编辑
摘要:reactjs是一枚新进小鲜肉,跟gulp搭配流行一段时间了。工作或者面试中经常遇到这样的问题,“子组件如何向父组件传值?”。其实很简单,概括起来就是:react中state改变了,组件才会update。父写好state和处理该state的函数,同时将函数名通过props属性值的形式传入子,子调用父 阅读全文
posted @ 2020-03-29 23:24 剑仙6 阅读(857) 评论(0) 推荐(0) 编辑
摘要:问题描述: 点击修改分类按钮,出现弹框 弹框里对应显示点击操作的对应分类 但在实际使用时,表单控件无法动态修改,代码如下所示 解决方案:给表单控件添加key属性,动态key属性即可解决该问题 参考他人解释: . 阅读全文
posted @ 2020-03-29 17:17 剑仙6 阅读(3813) 评论(1) 推荐(0) 编辑
摘要:react如果直接在点击事件里传参,则不会在触发点击时进行触发,而是在渲染时直接调用 1、直接传参 如下所示 测试后发现,该事件会在初始化时直接触发,而不是点击时触发。解决该问题方案为:箭头函数+间接调用 2、箭头函数+间接调用 此时便是在点击时触发函数调用 3、小结 阅读全文
posted @ 2020-03-29 01:03 剑仙6 阅读(2084) 评论(0) 推荐(1) 编辑
摘要:一般对于本地初始化的项目,除了使用Mock进行模拟外,我们还可以本地搭建后台和数据库,然后结合API文档向数据库添加数据,如下所示 1、查看API文档添加请求 2、使用postman发送请求 3、接下来可以进行检查 1、直接在CMD链接数据库查询 2、使用查询API进行测试 3、使用数据库可视化工具 阅读全文
posted @ 2020-03-28 23:34 剑仙6 阅读(405) 评论(0) 推荐(0) 编辑
摘要:最近一直在做react项目,发现一个bug,困扰了我两天。 Can't perform a React state update on an unmounted component. This is a no-op, but it indicates a memory leak in your ap 阅读全文
posted @ 2020-03-28 17:28 剑仙6 阅读(1105) 评论(0) 推荐(0) 编辑
摘要:常见的一个面试题:简单谈下JSONP解决ajax跨域请求的原理? 1、局限:只能跨域处理Get请求 2、本质是get请求 3、实现方式:分为浏览器端和服务器端 浏览器端通过sript来实现(发请求前编写一个用来处理请求的回调函数,然后传递给服务器) 4、小结 . 阅读全文
posted @ 2020-03-28 15:08 剑仙6 阅读(153) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-03-28 02:23 剑仙6 阅读(3) 评论(0) 推荐(0) 编辑
摘要:注意: 常见的方法:开发环境阶段 在package.json添加proxy字段进行配置,该配置方案仅用于开发环境 生产环境一般需要后端工程师进行配置,如果需要前端进行配置,需要最后在工程化项目打包运行时进行配置 本质: 阅读全文
posted @ 2020-03-28 01:36 剑仙6 阅读(140) 评论(0) 推荐(0) 编辑
摘要:这里分享个常见的测试调试方案,相对于常用的console.log()提升了一些档次... ... 如图所示我们在react项目组件正式render之前,加了个debugger断点 接下来刷新页面如下 我们可以点击下一步继续往下执行代码 我们会看到,当执行玩openKeyPath赋值后,再往下执行时, 阅读全文
posted @ 2020-03-28 01:26 剑仙6 阅读(382) 评论(0) 推荐(0) 编辑
摘要:<Route exact path="/Home" component={Home}/> 1.路由组件:只有包裹在Route组件里的才能使用`this.props.location`, 2.非路由组件:假如有个需求,是面包屑或者导航组件里需要拿到`this.props.location`(导航组件或 阅读全文
posted @ 2020-03-28 00:38 剑仙6 阅读(776) 评论(0) 推荐(0) 编辑
摘要:个人理解: <Route exact path="/Home" component={Home}/> 1.路由组件:只有包裹在Route组件里的才能使用`this.props.location`, 2.非路由组件:假如有个需求,是面包屑或者导航组件里需要拿到`this.props.location` 阅读全文
posted @ 2020-03-28 00:32 剑仙6 阅读(8014) 评论(0) 推荐(0) 编辑
摘要:案例结合递归+遍历实现二级导航 import React from 'react' import { Menu, Icon } from 'antd'; import './index.less'; import MenuConfig from './../../config/menuconfig' 阅读全文
posted @ 2020-03-27 18:33 剑仙6 阅读(3613) 评论(0) 推荐(0) 编辑
摘要:先使用withRouter对组件进行装饰然后就可以使用this.props.location.pathname获取到了例如: import React from 'react'; import { withRouter } from 'react-router-dom'; @withRouter e 阅读全文
posted @ 2020-03-27 17:04 剑仙6 阅读(5716) 评论(0) 推荐(0) 编辑
摘要:作用: 默认情况下必须经过路由匹配渲染的组件才存在this.props,才拥有路由参数,执行this.props.history.push('/detail')跳转到对应路由的页面,然而不是所有组件都直接与路由相连(通过路由跳转到此组件)的,当这些组件需要路由参数时,使用withRouter就可以给 阅读全文
posted @ 2020-03-27 17:02 剑仙6 阅读(1024) 评论(0) 推荐(0) 编辑
摘要:先回顾下之前所做的操作,在用户登录成功后将用户信息存储在内存里,如下所示 1、编写用户存储信息模块memoryUtils.js 2、登录组件里,当登录成功时将信息存储到内存 3、后台主页里进行登录验证 判断内存里是否包含user用户信息,如果没有则表示没有登录,重定向到登录页;否则正常访问 但此时发 阅读全文
posted @ 2020-03-26 17:59 剑仙6 阅读(3364) 评论(0) 推荐(1) 编辑
摘要:项目里经常遇到优化代码情况,例如回调地狱 1、现在比较流行的解决这个问题的方法是使用 Promise,可以将嵌套的回调函数展平。但是写代码和阅读依然有额外的负担。 2、另外一个方案是使用 ES6 中新增的 generator,因为 generator 的本质是可以将一个函数执行暂停,并保存上下文,再 阅读全文
posted @ 2020-03-26 16:12 剑仙6 阅读(477) 评论(0) 推荐(0) 编辑
摘要:(1)跨域情况: 跨域情况: 1)、协议不同:http与https 2)、主机不同 3)、端口号不同 (2)跨域处理: 跨域处理: 1、JSONP处理跨域,缺点:只能处理GET请求 2、CORS后台处理(开发应用比较少) 3、服务代理(开发应用较为广泛) (3)代理服务器: 代理服务器会帮我们做一个 阅读全文
posted @ 2020-03-26 15:24 剑仙6 阅读(218) 评论(0) 推荐(0) 编辑
摘要:文件--首选项--设置--用户设置 在用户设置添加 "emmet.includeLanguages": { "javascript": "javascriptreact" }如果你是mac用户,code--首选项--设置,进入后和window不太一样,mac展示的是一个列表 阅读全文
posted @ 2020-03-24 17:15 剑仙6 阅读(1144) 评论(0) 推荐(0) 编辑
摘要:(1)yarn的简介:Yarn是facebook发布的一款取代npm的包管理工具。 (2)yarn的特点:速度超快。Yarn 缓存了每个下载过的包,所以再次使用时无需重复下载。 同时利用并行下载以最大化资源利用率,因此安装速度更快。超级安全。在执行代码之前,Yarn 会通过算法校验每个安装包的完整性 阅读全文
posted @ 2020-03-24 16:59 剑仙6 阅读(1224) 评论(0) 推荐(0) 编辑
摘要:1.安装yarn方法一:使用安装包安装 官方下载安装包,https://yarnpkg.com/zh-Hans/docs/install,安装完毕后,一定要配置环境变量 方法二:使用npm安装 npm i yarn -g -i:install -g:全局安装(global),使用 -g 或 --gl 阅读全文
posted @ 2020-03-24 16:57 剑仙6 阅读(8509) 评论(0) 推荐(1) 编辑
摘要:很久之前好像改了ssh的一些配置,导致现在对git进行一些操作时,就会出现 当时就去百度,结果很多都是一些不太对应的解决方法,反正也没有解决,今天偶然看码云的文档才突然解决。 官方解决文档: http://git.mydoc.io/?t=154712 1)、重新生成ssh ssh-keygen -t 阅读全文
posted @ 2020-03-24 16:27 剑仙6 阅读(1214) 评论(0) 推荐(0) 编辑
摘要:一.通过命令配置1. 命令 npm config set registry https://registry.npm.taobao.org 2. 验证命令 npm config get registry 如果返回https://registry.npm.taobao.org,说明镜像配置成功。 二、 阅读全文
posted @ 2020-03-24 15:50 剑仙6 阅读(1651) 评论(0) 推荐(0) 编辑
摘要:MongoDB的安装 下载地址: https://www.mongodb.com/download-center (这是windows10环境下的教程!请注意!) 下载后,我们点击mongodb-win32-x86_64-2008plus-ssl-3.4.3-signed.msi(为2017.4.1 阅读全文
posted @ 2020-03-24 15:09 剑仙6 阅读(256) 评论(0) 推荐(0) 编辑
摘要:1、下载安装mongdb软件 百度云:https://pan.baidu.com/s/1c-um10DOoi9uq5eKLncwxA 密码:04rv 2、安装 选择custom模式,自定义目录,比如D:\MongoDB,一路next直到结束 3、创建文件夹 data、etc[创建mongodb.co 阅读全文
posted @ 2020-03-23 22:48 剑仙6 阅读(606) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-03-23 17:46 剑仙6 阅读(0) 评论(0) 推荐(0) 编辑
该文被密码保护。
posted @ 2020-03-23 16:01 剑仙6 阅读(1) 评论(0) 推荐(0) 编辑
摘要:在一个Node.js项目中,package.json几乎是一个必须的文件,它的主要作用就是管理项目中所使用到的外部依赖包,同时它也是npm命令的入口文件。 npm 目前支持以下几类依赖包管理: dependencies devDependencies peerDependencies optiona 阅读全文
posted @ 2020-03-23 10:21 剑仙6 阅读(927) 评论(0) 推荐(0) 编辑
摘要:熟悉一下基于React的新项目。按照以往,我的步骤都是: git clone xxx npm install npm run dev 这时,JJ给我来了下面一段 git clone xxx yarn yarn start “咦,yarn是什么鬼?难道npm更高级的替代品?为什么要替代npm?难道有什 阅读全文
posted @ 2020-03-22 11:31 剑仙6 阅读(331) 评论(0) 推荐(0) 编辑
摘要:最近Github 10周年在朋友圈里沸沸扬扬刷屏,小编在工作中却惊讶的发现不少同事对版本号中的beta和rc没有概念,使用npm install package@next时,也不清楚next代表的含义。于是,决定写一篇文章科普一下由 Github 起草的Semver(语义化版本)的相关知识。 实际案 阅读全文
posted @ 2020-03-22 11:22 剑仙6 阅读(167) 评论(0) 推荐(0) 编辑
摘要:重点: 1、封装自定义Hooks函数,一定要用use开头,这样才能区分出什么是组件,什么是自定义函数2、useCallback为缓存方法,useMome为缓存状态/属性,两者都是优化性能 其实自定义Hooks函数和用Hooks创建组件很相似,跟我们平时用JavaScript写函数几乎一模一样,可能就 阅读全文
posted @ 2020-03-20 22:29 剑仙6 阅读(801) 评论(0) 推荐(0) 编辑
摘要:什么是 React.memo ? React.memo 和 React.PureComponent 类似, React.PureComponent 在类组件中使用,而React.memo 在函数组件中使用 看下面两个例子,有两个计数器组件,两个计数器的数据都来源于父组件,第一个计数器通过点击按钮数字 阅读全文
posted @ 2020-03-20 22:03 剑仙6 阅读(1076) 评论(0) 推荐(0) 编辑
摘要:useCallback 使用场景是:有一个父组件,其中包含子组件,子组件接收一个函数作为props;通常而言,如果父组件更新了,子组件也会执行更新; import React, { useMemo, useCallback } from "react" let Counter = ({ value, 阅读全文
posted @ 2020-03-20 21:39 剑仙6 阅读(741) 评论(0) 推荐(0) 编辑
摘要:作用: useMemo主要用来解决使用React hooks产生的无用渲染的性能问题。 缘由: 使用function的形式来声明组件,失去了shouldCompnentUpdate(在组件更新之前)这个生命周期,主要进行状态对比,如果需要则进行改变。也就是说使用Hooks的useEffect(替代生 阅读全文
posted @ 2020-03-20 17:45 剑仙6 阅读(4299) 评论(0) 推荐(1) 编辑
摘要:一、useEffect 依赖诚实问题的粗暴解决及带来的问题 二、使用 useReducer 解决依赖诚实问题 1、声明一个 reducer 2、使用 useReducer 声明 state 和 dispatch 3、使用 dispatch 进行 state 的一些变更 4、效果: 5、依赖真的都诚实 阅读全文
posted @ 2020-03-20 17:39 剑仙6 阅读(3081) 评论(0) 推荐(1) 编辑
摘要:温馨提示: 使用react-hooks进行正常开发时,需要把组件和createContext创建上下文步骤单独写出来,哪里需要就在哪里引入 举个实际的例子:子组件中修改父组件的 state 一般的做法是将父组件的方法比如 setXXX 通过 props 的方式传给子组件,而一旦子组件多层级的话,就要 阅读全文
posted @ 2020-03-20 10:03 剑仙6 阅读(2096) 评论(0) 推荐(0) 编辑
摘要:近期开发遇到个小问题,没有多加注意,查找时只能暂时用别的办法,闲暇之余看了下原来这么简单... ...,这里留个备录。 var x = 1; function fn(x){ console.log(x) }; fn() 输出结果为undefined,原因:局部变量x覆盖了全局变量。 var x = 阅读全文
posted @ 2020-03-20 08:58 剑仙6 阅读(98) 评论(0) 推荐(0) 编辑
摘要:概念 首先我们会用到哪些框架和工具呢? React UI框架 Redux 状态管理工具,与React没有任何关系,其他UI框架也可以使用Redux react-redux React插件,作用:方便在React项目中使用Redux react-thunk 中间件,作用:支持异步action 目录结构 阅读全文
posted @ 2020-03-18 16:36 剑仙6 阅读(245) 评论(0) 推荐(0) 编辑
摘要:(1)无状态组件 无状态组件(Stateless Component)是最基础的组件形式,由于没有状态的影响所以就是纯静态展示的作用。一般来说,各种UI库里也是最开始会开发的组件类别。如按钮、标签、输入框等。它的基本组成结构就是属性(props)加上一个渲染函数(render)。由于不涉及到状态的更 阅读全文
posted @ 2020-03-17 11:49 剑仙6 阅读(1316) 评论(0) 推荐(0) 编辑
摘要:react-router-v4,我称之为“第四代react-router”,react-router和react-router-dom的区别是什么呢? 为什么有时候我们看到如下的写法: 写法1: import {Swtich, Route, Router, HashHistory, Link} fr 阅读全文
posted @ 2020-03-17 11:32 剑仙6 阅读(945) 评论(0) 推荐(0) 编辑
摘要:转做前端开发以来,每天使用最频繁的工具就是控制台了,git提交代码要用,npm安装node包也要用,grunt 运行 task 也要用,可是系统自带的cmd太难用,有界面丑,字体丑,不能最大化等等问题,常见的替代品如下 那么问题就来了: “windows 下 Terminal哪家强?” 推荐一款代替 阅读全文
posted @ 2020-03-16 15:56 剑仙6 阅读(1236) 评论(0) 推荐(0) 编辑
摘要:本文记录下react开发里常,Visual Studio Code开发集成环境常用的插件,简单截图如下,具体作用自己下载后对应详情界面会有介绍 (1)大体列表 (2)禁用列表 (3)推荐列表 (4)已启用列表 . 阅读全文
posted @ 2020-03-16 15:36 剑仙6 阅读(575) 评论(0) 推荐(0) 编辑
摘要:本节主要针对之前的ToDoList代码做下优化 (1)删除无用构造器 (2)解构赋值优化this.props取值 优化如下 注意位置: 解构赋值语法定义的局部变量要写在render内部 (3)无状态UI组件抽离 将当前组件的render内部抽离出来 无状态组件的优点: 1、大大提高了组件渲染性能 2 阅读全文
posted @ 2020-03-16 15:02 剑仙6 阅读(133) 评论(0) 推荐(0) 编辑
摘要:接着之前的react-redux完善ToDoList案例,实现点击按钮,添加列表项功能 (1)添加按钮响应事件 (2)编写映射关系 (3)编写reducer.js进行state的业务逻辑处理 测试如下,此时便完成了列表数据的添加操作 . 阅读全文
posted @ 2020-03-16 14:51 剑仙6 阅读(379) 评论(0) 推荐(0) 编辑
摘要:目前为止的ToDoList案例已经可以正常展示,但是还不能修改编辑,如下所示 此时控制台报错提示,缺少onChange响应事件,所以接下来编写响应事件,改变state状态值。 (1)通常做法 之前的做法都是绑定具体方法进行调用,如下所示,绑定handleInput方法,当输入值时进行输出打印 接下来 阅读全文
posted @ 2020-03-16 14:27 剑仙6 阅读(1563) 评论(0) 推荐(0) 编辑
摘要:本节主要介绍react-redux的两个知识点:1、提供器Provider;2、Connect连接器。 (1)提供器provider 被Provider包裹的组件,可以直接获取store仓库的状态值,用法如下 只要被Provider包裹的组件都可以方便获取store (2)连接器Connect 提供 阅读全文
posted @ 2020-03-16 13:33 剑仙6 阅读(220) 评论(0) 推荐(0) 编辑
摘要:(1)初始化项目 安装完毕后,删除src下其他文件,留下index.js入口文件,如下所示 接下来首先安装redux和react-redux依赖(因为react-redux依赖redux,是在redux基础上建立起来的) >npm i redux react-redux --save 接下来编写跟组 阅读全文
posted @ 2020-03-15 20:31 剑仙6 阅读(263) 评论(0) 推荐(0) 编辑
摘要:(1)前言 (2)安装 首先安装相关依赖 >npm i redux-saga --save (3)配置 接下来开始进行编写配置,文件位置src/store/index.js。先将之前的redux中间件redux-thunk做下备份,然后开始配置redux-saga中间件 redux-saga中间件相 阅读全文
posted @ 2020-03-15 16:26 剑仙6 阅读(387) 评论(0) 推荐(0) 编辑
摘要:(1)概念图+简介 中间件相当于在Action到Reducer的中间放置了一个函数,常用场景:项目日志、创建奔溃报告、调用异步接口等等。 例如之前常用案例ToDoList里的Redux结合axios异步获取数据 实际开发里,一般会将异步调用放到Redux中间件Redux-thunk来完成。 Redu 阅读全文
posted @ 2020-03-15 15:11 剑仙6 阅读(458) 评论(0) 推荐(0) 编辑
摘要:介绍一下一个函数式编程里面非常重要的概念 —— 纯函数(Pure Function)。 简单来说,一个函数的返回结果只依赖于它的参数,并且在执行过程里面没有副作用,我们就把这个函数叫做纯函数。这么说肯定比较抽象,我们把它掰开来看: 函数的返回结果只依赖于它的参数。 函数执行过程里面没有副作用。 函数 阅读全文
posted @ 2020-03-13 22:46 剑仙6 阅读(265) 评论(0) 推荐(0) 编辑
摘要:纯函数是函数式编程的基础,需要重点理解。纯函数的作用,可以看《JavaScript函数式编程之为什么要函数式编程(非严谨技术层面的扯淡)》。 纯函数的概念: 纯函数是这样一种函数,即相同的输入,永远会得到相同的输出,而且没有任何可观察的副作用。 他的重点在于“相同的输入,永远会得到相同的输出”,后面 阅读全文
posted @ 2020-03-13 22:45 剑仙6 阅读(853) 评论(0) 推荐(0) 编辑
摘要:如果箭头函数的代码块部分多于一条语句,就要使用大括号将它们括起来,并且使用return语句返回。 var sum = (num1, num2) => { return num1 + num2; } 箭头函数返回对象,由于大括号被解释为代码块,所以如果箭头函数直接返回一个对象,必须在对象外面加上括号。 阅读全文
posted @ 2020-03-13 21:39 剑仙6 阅读(755) 评论(0) 推荐(0) 编辑
摘要:JavaScript在ES6语法中新增了箭头函数,相较于传统函数,箭头函数不仅更加简洁,而且在this方面进行了改进。this作为JavaScript中比较诡异的存在,许多文章对于this的解释也不尽相同,本篇文章试图厘清JS中函数与this的关系。 一、JS中函数的写法 1.常规函数的写法 在ES 阅读全文
posted @ 2020-03-13 21:23 剑仙6 阅读(433) 评论(0) 推荐(0) 编辑
摘要:React动画通常有三种方法实现从易到难为: 1、transition(CSS3自带) 2、animation(CSS3自带) 3、react-transition-group动画库(需要引入插件) react生态圈十分庞大,类似于动画库有很多,这里我们介绍一款react-transition-gr 阅读全文
posted @ 2020-03-11 21:31 剑仙6 阅读(1504) 评论(0) 推荐(0) 编辑
摘要:分享一篇文章 原文链接:http://caibaojian.com/animation-fill-mode.html css3 animation状态结束后可以通过animation-fill-mode 控制动画的最后状态,分别是不改变默认行为、保持最后一个属性和回到第一帧。 假如我们就想让一个元素 阅读全文
posted @ 2020-03-11 21:19 剑仙6 阅读(885) 评论(0) 推荐(0) 编辑
摘要:一、transition(CSS3自带) 1、用法示例: 1 2 3 4 .hide{ /*过渡动画效果*/ opacity: 1; transition: all 1s ease-in; } 含义:透明度在1s内从0渐变为1 2、transition其他参数 建议参考(http://www.run 阅读全文
posted @ 2020-03-11 17:26 剑仙6 阅读(385) 评论(0) 推荐(0) 编辑
摘要:除了常见的mock.js,最近发现一款新的前端模拟数据工具easy-mock。 官网:https://www.easy-mock.com/ 登录成功后点击右下角+号,进行项目创建 输入项目名等相关信息,创建项目 创建接口 写入数据,创建接口 创建接口完毕后,复制链接 替换接口,然后将state置空 阅读全文
posted @ 2020-03-11 16:56 剑仙6 阅读(495) 评论(0) 推荐(0) 编辑
摘要:本节介绍下React+Axios实现远程数据请求 这里注意:axios是一个独立程序,本质就是对AJAX的封装,可以和很多框架结合使用。 (1)安装依赖 >npm i axios --save (2)引入使用 建议在componentDidMount生命周期函数里进行数据请求,这里我们结合json- 阅读全文
posted @ 2020-03-10 22:18 剑仙6 阅读(331) 评论(0) 推荐(0) 编辑
摘要:之前已经介绍过了React的相关生命周期,这里介绍下通过生命周期函数componentWillReceiveProps实现组件性能优化。 之前案例中的组件存在性能问题,即父组件的state更新时频繁渲染了子组件,也就是说父组件的输入框的值改动造成了子组件render的频繁触发渲染,性能上存在缺陷。 阅读全文
posted @ 2020-03-10 21:41 剑仙6 阅读(223) 评论(0) 推荐(0) 编辑
摘要:综上所示,React生命周期钩子可以分为4个大阶段 1、Initialization初始化阶段 2、Mounting虚拟DOM挂载阶段 3、Updation组件更新阶段 4、Unmounting组件卸载阶段 通俗理解,就是在组件的某一时刻,自动执行的函数。从这个角度来看的话,constructor也 阅读全文
posted @ 2020-03-10 18:06 剑仙6 阅读(879) 评论(0) 推荐(0) 编辑
摘要:学习react的同学肯定看过这种写法 注意这里的ref,写法为 ref = {(input)=>{this.input=input}}等价于ref = {input=>this.input=input}等价于ref = {(input)=>this.input=input} 这里主要是ES6箭头函数 阅读全文
posted @ 2020-03-10 17:53 剑仙6 阅读(2058) 评论(0) 推荐(0) 编辑
摘要:基本类型校验: 之前的案例中,父组件向子组件传递的数据里,并没有做数据类型校验 虽然正确传递和使用了,但是在子组件里并没有做传递数据的类型验证,也就是说,此时传递任何值都不会报错。 开发经验丰富的小伙伴都知道,当项目复杂性较大时,如果不对数据类型做校验,后期很容易出现一种错误,即“业务逻辑错误”。 阅读全文
posted @ 2020-03-10 17:02 剑仙6 阅读(564) 评论(0) 推荐(0) 编辑
摘要:Facebook为了方便调试React代码,推出了React Developer Tools调试工具,方便开发者高效快速调试代码。下载方式,利用Chrome的拓展程序 添加后该图标便会放到页面右上角,该图标有几种状态,测试如下 1、打开淘宝发现图标灰色,说明淘宝没有使用react 2、打开知乎,发现 阅读全文
posted @ 2020-03-10 16:36 剑仙6 阅读(721) 评论(0) 推荐(0) 编辑
摘要:我们使用create-react-app脚手架时,会发现入口文件index.js中有这样一个引入使用。 这个文件可以视情况用或者不用,它是用来做离线缓存等任务的,实际上就是为react项目注册了一个service worker。这样的话,如果在线上,只要访问过一次该网站,以后即使没有网络也可以访问( 阅读全文
posted @ 2020-03-09 22:26 剑仙6 阅读(2508) 评论(0) 推荐(0) 编辑
摘要:JSX支持遍历语法,如下 除了上面数组遍历方式,还有另一种,如下所示 结合for循环(外部) 注意: 主流循环写法是 map,jsx里面不能用for循环,因为for循环不是表达式。可以用Array::map方法,注意给返回的每一个组件设置一个唯一的key。 . 阅读全文
posted @ 2020-03-09 11:43 剑仙6 阅读(2136) 评论(0) 推荐(0) 编辑
摘要:前言 JavaScript 发展至今已经发展出多种数组的循环遍历的方法,不同的遍历方法运行起来那个比较快,不同循环方法使用在那些场景,下面将进行比较: 各种数组遍历的方法 for 语句 代码: var arr = [1,2,4,6] for(var i = 0, len = arr.length; 阅读全文
posted @ 2020-03-09 11:36 剑仙6 阅读(139) 评论(0) 推荐(0) 编辑
摘要:三元表达式也叫三目运算符,较为常见,语法 condition ? result1 : result2 二元表达式也叫二目运算符,语法 result1 || result2 如果结果1存在则显示结果1,否则显示结果2 . 阅读全文
posted @ 2020-03-09 11:08 剑仙6 阅读(5178) 评论(0) 推荐(1) 编辑
摘要:小结: React遵循从上到下的数据流向,即单向数据流。 1、单向数据流并非‘单向绑定’,甚至单向数据流与绑定没有‘任何关系’。对于React来说,单向数据流(从上到下)与单一数据源这两个原则,限定了React中要想在一个组件中更新另一个组件的状态(类似于Vue的平行组件传参,或者是子组件向父组件传 阅读全文
posted @ 2020-03-08 21:43 剑仙6 阅读(3453) 评论(0) 推荐(1) 编辑
摘要:(1)图片处理 首先回顾下图片引入方式 1、js创建图片引入 2、css结合背景图background-image: url('')引入 3、图片标签引入<img src="" alt="" /> 1、首先在js里创建图片插入 接着进行打包输出,测试如下 发现图片并没有被打包过来... ...,接下 阅读全文
posted @ 2020-03-08 11:54 剑仙6 阅读(799) 评论(0) 推荐(0) 编辑
摘要:先来个简单案例: <button id="btn">点击</button> <script type="text/javascript"> var btn = document.querySelector('#btn') btn.addEventListener('click',function() 阅读全文
posted @ 2020-03-08 10:35 剑仙6 阅读(1886) 评论(0) 推荐(0) 编辑
摘要:(1)ES6语法解析转换ES5 为了方便测试,我们先将mode模式改为开发模式development,首先编写ES6语法进行相关测试 然后打包测试,发现打包后的js文件仍旧是ES6语法 接下来安装相关依赖 npm i babel-loader @babel/core @babel/preset-en 阅读全文
posted @ 2020-03-07 18:50 剑仙6 阅读(1275) 评论(0) 推荐(0) 编辑
摘要:(1)打包后的文件分析 首先将打包后的文件进行适当删减,Ctrl+Shift+L可以同时选中所有相同结构内容 结构如下 (function(modules){ ... })( { ... } ) 分析可知本质为匿名函数即IIFE函数,执行时会传入后面函数执行符里的对象,接下来分析下传入对象 对象构成 阅读全文
posted @ 2020-03-04 22:14 剑仙6 阅读(1129) 评论(0) 推荐(0) 编辑
摘要:Commonjs模块化打包 接下来进行打包验证 npx webpack,输出结果部分如下 然后执行测试下打包输出文件main.js,这里测试有两者方法 (1)直接使用node环境测试 node main.js (2)新建html文件,引入js脚本然后启动验证 接下来执行live-server启动,然 阅读全文
posted @ 2020-03-04 18:19 剑仙6 阅读(286) 评论(0) 推荐(0) 编辑
摘要:(1)版本注意 npm 5.2.0开始npm便开始携带了npx (2)npx是什么? npx是一个工具,它是npm v5.2.0引入的一条命令(npx),是npm的一个包执行器,只要为了提高从npm注册表使用软件包的体验 。 npm使得它非常容易地安装和管理托管在注册表上的依赖项, npx使得使用C 阅读全文
posted @ 2020-03-04 17:57 剑仙6 阅读(1451) 评论(0) 推荐(0) 编辑
摘要:(1)简介 可以做的事情 1、代码转换:将ES6转为ES5;将CSS、Less、Sass等转化为CSS; 2、文件优化:文件打包过程里压缩代码体积,合并文件 3、代码分割:公共模块的抽离、路由懒加载 4、模块合并:按照功能分类,将多个模块合并为一个模块 5、自动刷新:启动webpack服务,实现代码 阅读全文
posted @ 2020-03-04 16:29 剑仙6 阅读(578) 评论(0) 推荐(0) 编辑
摘要:最近在学习webpack过程中,根据官方文档推荐局部安装webpack,执行webpack -h命令出现以下提示 npm install webpack-cli -D提示在开发环境中局部安装webpack-cli成功安装webpack-cli后,运行webpack -h还是提示 说明webpack命 阅读全文
posted @ 2020-03-03 11:19 剑仙6 阅读(9973) 评论(1) 推荐(2) 编辑
摘要:(1)编译ES6 测试后有问题,先继续往下 使用webpack配合babel打包编译ES6/ES7 1、Babel是应用比较广泛的编译工具 2、在webpack使用时需要借助babel-loader,之前提到过,在webpack中编译处理静态文件,都会用到loader。而babel-loader是一 阅读全文
posted @ 2020-03-02 21:31 剑仙6 阅读(472) 评论(0) 推荐(0) 编辑
摘要:(1)背景 作者受Google工具的模块分割 影响有了创作灵感 随着SPA的推广,前端应用复杂度快速提升。 MVC时代便有了模块化的初期思想 三大框架便将模块化概念推广普及开来。 而模块化的同时必须面对打包和相关新型语法转换的问题 上述可以看出HTML、CSS发展史,预处理语言Less、Sass等, 阅读全文
posted @ 2020-03-02 20:40 剑仙6 阅读(190) 评论(0) 推荐(0) 编辑
摘要:BEM风格代码案例: 阅读全文
posted @ 2020-03-02 20:34 剑仙6 阅读(106) 评论(0) 推荐(0) 编辑
摘要:1、ES6模块导入使用import...from...,{}里存放导入的方法 2、可以一起导入,也可以分开导入 3、named as myName中的as为重命名 4、import * as mylib from 'src/lib' 把模块里定义导出的所有方法,绑定到mylib对象上 5、impor 阅读全文
posted @ 2020-03-02 20:24 剑仙6 阅读(1050) 评论(0) 推荐(0) 编辑
摘要:Javascript只有函数作用域,什么块儿啊、神马文件啊统统都认为是一个命名空间的,有时候因为一些重名问题导致的错误让人莫名其妙,难以调试解决。 在JavaScript中全局变量经常会引起命名冲突,甚至有时侯重写变量也不是按照你想像中的顺序来的,可以看看下面的例子: var sayHello = 阅读全文
posted @ 2020-03-02 19:56 剑仙6 阅读(176) 评论(0) 推荐(0) 编辑
摘要:今天要推荐的是一款 chrome 插件(严格意义上应该叫做扩展程序),在用网页看视频的时候我们有时可能遇到视频声音太小的情况,即使把网页声音和电脑声音全部加满还是感觉声音太小 这种情况我们可以把视频下载到本地,再用 Pr 或者其它软件把声音强行提上去,但这种方法实在太麻烦,有些视频很难下载到本地不说 阅读全文
posted @ 2020-03-02 18:38 剑仙6 阅读(1882) 评论(0) 推荐(0) 编辑
摘要:(1)webpack作用 1、前端为什么需要webpack? 现在的前端网页功能丰富,特别是SPA(single page web application 单页应用)技术流行后,JavaScript的复杂度增加和需要一大堆依赖包,还需要解决SCSS,Less……新增样式的扩展写法的编译工作。所以现代 阅读全文
posted @ 2020-03-02 18:30 剑仙6 阅读(272) 评论(0) 推荐(0) 编辑
摘要:【前言】 live-server是可以运行前端静态文件的一个服务器,既然我们要前后端分离,所以就需要单独将html代码运行起来,这里我们选择live-server,等到后边真正部署的时候在用nginx 在写一下简单的项目或学习一些技术的练习,没有服务器的话,每次写的代码都需要手动刷新浏览器。有点无奈 阅读全文
posted @ 2020-03-02 17:36 剑仙6 阅读(1596) 评论(0) 推荐(0) 编辑
摘要:根据上面展示代码中二者定义组件的语法格式不同之外,二者还有很多重要的区别,下面就描述一下二者的主要区别。 (1)函数this自绑定 React.createClass创建的组件,其每一个成员函数的this都有React自动绑定,任何时候使用,直接使用this.method即可,函数中的this会被正 阅读全文
posted @ 2020-03-01 21:27 剑仙6 阅读(580) 评论(0) 推荐(0) 编辑
摘要:React.Component有三种手动绑定方法: 可以在构造函数中完成绑定 可以在调用时使用method.bind(this)来完成绑定 可以使用arrow function来绑定。 拿上例的handleClick函数来说,其绑定可以有: 1、构造函数绑定 constructor(props) { 阅读全文
posted @ 2020-03-01 21:18 剑仙6 阅读(437) 评论(0) 推荐(0) 编辑
摘要:React推出后,出于不同的原因先后出现三种定义react组件的方式,殊途同归;具体的三种方式: 函数式定义的无状态组件 es5原生方式React.createClass定义的组件 es6形式的extends React.Component定义的组件 虽然有三种方式可以定义react的组件,那么这三 阅读全文
posted @ 2020-03-01 21:13 剑仙6 阅读(1575) 评论(0) 推荐(0) 编辑
摘要:近期使用搜狗系统发现除了经常弹出广告,还一直在后台运行计算数据,影响电脑性能,所以尝试换了几款输入法,这里简单概括下 下载链接https://dl.pconline.com.cn/download/359427-1.html 可以自定义皮肤,全程无广告弹框 阅读全文
posted @ 2020-03-01 18:51 剑仙6 阅读(168) 评论(0) 推荐(0) 编辑
摘要:近期使用搜狗系统发现除了经常弹出广告,还一直在后台运行计算数据,影响电脑性能,所以尝试换了几款输入法,这里简单概括下 下载链接https://dl.pconline.com.cn/download/359427-1.html 可以自定义皮肤,全程无广告弹框 . 阅读全文
posted @ 2020-03-01 15:35 剑仙6 阅读(309) 评论(0) 推荐(0) 编辑
摘要:问题: 对于经常使用IE浏览器的网友,某一天发现IE浏览器打不开的情况,这真是一个噩耗!好端端的怎么说歇菜就歇菜了?还等着用IE浏览器上网呢!IE浏览器点击图标没有反应该怎么办?IE浏览器无法启动是什么原因造成的? 主体: (1)先打开“控制面板”,点击“网络和Internet选项”,选择“管理浏览 阅读全文
posted @ 2020-03-01 14:50 剑仙6 阅读(518) 评论(0) 推荐(0) 编辑
摘要:问题: win7系统,IE11浏览器,想换成IE9,安装IE9的时候,提示错误。 解决方案: 方案一: 1、打开 控制面板--程序--程序和功能--点击打开或者关闭Windows功能,找到Internet Explorer 11,把勾去掉。 2、再到”已安装更新“那里找到”windows Inter 阅读全文
posted @ 2020-03-01 14:42 剑仙6 阅读(5981) 评论(0) 推荐(0) 编辑

欢迎访问个人网站www.qingchun.在线
点击右上角即可分享
微信分享提示