react

前端圈为啥贫富分化越来越严重?

牧云@^-^@ 提交于 2020-11-05 14:37:09
最近和一位很年轻的前端朋友聊天,他准备转行了。转行原因就是一部前端入门到放弃的血泪史。 当年毕业的时候,听说 前端简单好学、工资高,报了培训班 学了 JavaScprit、CSS、HTML5。 找到工作以后,以为只要边工作边学习,几年一晋升不成问题 。 没想到上手之后,简直是从前端做成了“全端”, 从 Weex 到 React、Vue。 全都用过,但全都不懂 ,越做越觉得迷茫,干脆转行做点其他的。 其实这不是个例,现实中很多这样的前端。一般来说后端开发的年限、能力对应不同的段位。 前端就很残忍,要么青铜工作受罪,要么王者薪资到位。 如果你还没升级到王者段位,那你的升级之路就要面对这些: 1.掌握复杂的前端知识点: 最简单的 HTML 语言有上百个用法各异的标签,每个标签还有属性,还有 DOM 提供的 API;CSS 的知识点也不少,选择器有十几类,属性有上百种,常用的枚举属性 display 都有十几种值;至于 JavaScript 的知识点,犀牛书(JavaScript权威指南)有六七百页,可想它的难度。 2.跟得上前端技术的更新速度: 主流框架 React、Vue、Angular 你至少得会两种;构建工具不断更新,有些框架还封装了自己的命令行工具;还有不断出现新技术名词,如 SSR、PWA、Serverless、Flutter 等都要掌握。 面对层出不穷的新技术,绝对不能只抱怨

react 高阶组件的 理解和应用

巧了我就是萌 提交于 2020-11-04 01:28:53
高阶组件是什么东西   简单的理解是:一个包装了另一个 基础 组件的组件。(相对高阶组件来说,我习惯把被包装的组件称为基础组件)   注意:这里说的是包装,可以理解成包裹和组装;   具体的是高阶组件的两种形式吧:     a、属性代理(Props Proxy)       可以说是对组件的包裹,在包裹的过程中对被包裹的组件做了点什么(props的处理,把基础组件和其他元素组合),然后返回,这就成了一个高阶组件;     b、反向继承 (Inheritance Inversion)       可以理解成是组装,和属性代理不同的是,反向继承是 继承 自基础组件,所有很自然,它可以直接获取基础组件的props,操作基础组件的state。可以通过 反向继承的形式,配合 compose 将携带不同功能模块的高阶组件组装到基础组件上,加强基础组件。   本文栗子: https://github.com/wayaha/react-demos-HOC   compose栗子: https://github.com/wayaha/react-dom-compose   (如果对您有帮助,请帮我点颗star)    下边一个一个的说。 属性代理(Props Proxy)    我们可以先建一个基础组件,如下 : class BaseComponent extends Component {  

React高阶组件的应用

这一生的挚爱 提交于 2020-11-03 16:32:15
题图 From Bing By Clm 今天跟大家聊一聊React的高阶组件,那么什么是高阶组件呢? 如果一个函数 接受一个或多个组件作为参数并且返回一个组件 就可称之为 高阶组件。 高阶组件的本质就是一个函数,这个函数的参数是组件,这个函数的返回结果是一个组件。 我们用一个案例来说明,封装一个Mouse组件,这个组件实时获取鼠标的坐标并实时显示出来。 代码如下: import React,{Component} from 'react' ; class Mouse extends Component { constructor (props) { super (props); this .state = { x : 0 , y : 0 } } handleMouse= ( e )=> { this .setState({ x :e.clientX, y :e.clientY }) } render() { return < div onMouseMove = {this.handleMouse} style = {{ background: " red ", height: " 100px ", width: " 500px ", }} > < h1 > x:{this.state.x} </ h1 > < h1 > y:{this.state.y} </ h1 > </ div

只需三步,带你从0到1玩转React,附源码我一定给你讲明白

可紊 提交于 2020-11-03 16:21:52
不知道为什么,自从我开始在这里写一些我的工作和生活纪要之后,老大就开始各种的让我做一些很神奇的东西,难道他知道了(小声嘀咕),虽然我知道不可能,这老小子除了媳妇孩子让他上心之外,绝对不可能拿手机看文章的(这句话就是测试一下,要是他真的看我的文章的话,我基本就不会在更新了。哈哈哈哈哈)这次的内容是一个开发实战,刚好我们项目用到了,之前的时候我自己玩过并且代码提交了Git,所以这次直接拿来用了,用同事的话说我就是个百宝箱,有好多可以直接cv的代码用,今天就给大家介绍一下我们日常应用比较多的React,主要是以下几个方面 React中怎么实现后台调用(异步+同步) React父子组件传值 React如何修改深层state属性 好了,老规矩,正式看代码之前,先来给我点个 关注+评论 吧,谢谢各位的支持 个人公众号:Java架构师联盟,每日更新技术学习好文 React如何调用后台 使用惯了jQuery封装好的ajax方法,这次在使用React项目开发时,着实令人着急,记录一下。 fetch fetch是用来取代传统的XMLHttpRequest的。 它的优点很多,包括链式调用的语法、返回promise等。 下面就是最基本的fetch使用,默认是异步的。 fetch(url,{ method : 'POST' , headers : { 'Content-Type' :

React 实现使用高阶组件两种方式

爱⌒轻易说出口 提交于 2020-11-03 16:01:39
React 使用高阶组件有两种 一种是 调用 传入的组件 另外 一种是 继承传入的组件。高阶组件 就是一个函数 接受参数组件 返回的也是组件 1、function Htight1( componentName ){ return class WrapComponent extends Components { render(){ return ( <componentName ...this.props> { this.props.children } </componentName> ) } } } const demo1 = class extends Components { } 第二种 继承传入组件 function Htight1(componentName){ return class WrapComponents{ //doSomething } } 总结: 这两种在需求上使用没有什么区别 来源: oschina 链接: https://my.oschina.net/u/4399202/blog/4701106

整合最新版 create-react-app、typescript、ant-design、less、less-loader以及路径映射的方法

烂漫一生 提交于 2020-11-03 13:18:47
最近兴趣使然,想要学习typescipt、react、ant,巧不巧刚好可以凑成一套完成的解决方法,可惜过程却并不顺利,现在记录下来我的解决过程,供大家参考希望能顺利一次跑通 版本说明 create-react-app 版本号:4.0.0(2020年10月31日,内部自带react、typescript等) Ant Design of React 版本号:4.7.3 less 版本号:3.12.2 less-loader 版本号:7.0.2 node 版本号:12.13.0 npm 版本号:6.12.0 一、利用create-react-app脚手架安装项目 本人习惯用npm进行安装,喜欢yarn应该也能行的通(默认是yarn) npx create-react-app antd-demo-ts --typescript --use-npm 二、将所有内建的配置暴露出来 这一步相当关键,若不在第一次执行该步骤,可能会出错 npm run eject 暴露之后的目录结构 三、修改路径映射 在webpack.config.js的alias下增加 "@": path.resolve("src") ,以后就可以用 @ 对 src 文件下的文件进行索引啦~ "@": path.resolve("src") 截图: 四、引入ant 现在从 yarn 或 npm 安装并引入 antd。 npm

前端学起来特别吃力,新人入前端怎么学?

半腔热情 提交于 2020-11-02 13:23:43
最近知乎收到一些问题,问前端学起来吃力,连续更新几次回答的比较全了。现在整理下分享给51![]的小伙伴们。 前端工作两年多。大部分前端原理、框架都能完全运用。工作中几乎遇不到解决不了的问题(除了那些恶心无法实现的需求)现在经常被安排去面试新人(被安排去面试,主要是工作能力比较突出的原因,公司还有很多3年以上的员工)。 下面说说我的学习方法或许对你有用! 一、打好基础不用说 HTML、CSS、JavaScript 三大件,完全掌握。不懂得就直接查 MDN。 HTML重点掌握语义化。区分块级和内联标签。其他查文档就好了。还有就是定义 head 里面一些meta 了解下。 CSS。重点看盒子模型,定位,层级,过渡,动画和 transform。知道原理和规则。大部分工作都是照着设计稿化。掌握上面几个 99% 还原也不难。接下来重点学习几种常见的布局。完了之后去搞flex。最后搞下sass、less。基本就差不多了。 JavaScript。重点来了,红宝书看一遍掌握基础,进阶去看《你不知道的 JavaScript》。就这两套足够了,别搞那么多。 每个知识点搞懂。ES6 基本没啥问题。下面几个问题优先搞懂,优先级如下: this 用法,相关原理 原型/原型链 闭包 面向对象相关 同步异步/回调/promise/async、await 模块化 CommonJS, AMD 先搞这懂这些比较难的概念

技术周刊 · 谷歌首个线上 Web 开发者大会

扶醉桌前 提交于 2020-11-01 21:43:15
近期,谷歌有史以来的第一次线上谷歌 Web 开发者大会,Web Vitals、PWA、DevTools 和 Lighthouse 6.0 等一系列特性或产品带来的全新体验,让人眼花缭乱。这次大会也以线上的形式分享了包括了性能优化、打包构建等非常多干货,定会让你收获颇丰。 登高远眺 — 天高地迥,觉宇宙之无穷 基础技术 谷歌发布首个线上 Web 开发者大会 谷歌在本月初完成首次线上 Web 开发者大会 (web.dev/live),以线上视频的形式,分享关于优化核心 Web 指标的最佳实践,Cookie 隐私和安全保护、构建工具与打包优化、Chrome DevTools 改进等技术干货。 盛况回顾 | 谷歌 Web 开发者大会的重要发布 深入浅出现代 Web 编程 这是芬兰赫尔辛基大学公开的全栈课程资源,内容包括 React, Redux, Node.js, MongoDB, GraphQL 以及 TypeScript 等,教你利用 ReactJS 搭配 Node.js 开发 REST API,搭建属于自己的单页应用程序(SPA:Single Page Application)。 全栈公开课 2020 前端框架 在 React 内使用内联函数的性能损耗究竟有多少? 一直有人教导我们:在 React 里用形如 onClick={() => { /* xxx */ }}

【React】377- 实现 React 中的状态自动保存

老子叫甜甜 提交于 2020-11-01 19:17:46
点击上方“前端自习课”关注,学习起来~ 作者:陈俊宇 https://github.com/CJY0208 什么是状态保存? 假设有下述场景: 移动端中,用户访问了一个列表页,上拉浏览列表页的过程中,随着 滚动高度 逐渐增加,数据也将采用触底 分页加载 的形式逐步增加,列表页浏览到某个位置,用户看到了感兴趣的项目,点击查看其详情,进入详情页, 从详情页退回列表页时,需要停留在离开列表页时的浏览位置上 类似的数据或场景还有 已填写但未提交的表单 、 管理系统中可切换和可关闭的功能标签 等,这类数据随着用户交互逐渐变化或增长,这里理解为 状态 ,在交互过程中,因为某些原因需要临时离开交互场景,则 需要对状态进行保存 在 React 中,我们通常会使用 路由 去管理不同的页面,而在切换页面时,路由将会卸载掉未匹配的页面组件,所以上述列表页例子中, 当用户从详情页退回列表页时,会回到列表页顶部,因为列表页组件被路由卸载后重建了,状态被丢失 如何实现 React 中的状态保存 在 Vue 中,我们可以非常便捷地通过 <keep-alive> [1] 标签实现状态的保存,该标签会缓存不活动的组件实例,而不是销毁它们 而在 React 中并没有这个功能,曾经有人在官方提过功能 issues [2] ,但官方认为这个功能容易造成内存泄露,表示暂时不考虑支持,所以我们需要自己想办法了 常见的解决方式

React 第一个小游戏(井字棋)知识关键点

爱⌒轻易说出口 提交于 2020-10-31 05:28:31
1、React是一个声明式,高效且灵活的用于构建用户界面的JavaScript库 通过使用组件来告诉React我们希望在屏幕上看到什么。当数据发生变化时,React会高效的更新并重新渲染我们的组件 2、 render返回了一个React元素,这是一种对渲染内容的轻量级描述。大多数的React开发者使用了一种名为"JSX"的特殊语法, 语法<div/>会被编译成React.creatElement('div'); 3、 在JavaScript class中,每次你定义其子类的构造函数时,都需要调用super方法。因此, 所有含有构造函数的React组件中,构造函数必须以super(props)开头; 4、当你遇到需要同时获取多个子组件数据,或者两个组件之间需要相互通讯的情况时,需要把子组件的state数据 提升至其共同的父组件 当中保存。之后父组件可以通过props将状态数据传递到子组件当中。这样应用当中所有组件 的桩体数据就可以更方便的同步共享了。 5、为了提高可读性,我们把返回的React元素拆分成了多行,同时在最外层加了小括号,这样JavaScript解析时候就不会 在return的后面自动插入一个分号从而破坏代码结构了; 6、因为DOM元素<button>是一个内置组件,因此其onClick属性在React中有特殊含义。而对于用户自定义的组件来说,命名就可以 由用户自己定义了