react

你不知道的React Hook

十年热恋 提交于 2020-08-18 04:42:59
前言 自 React16.8 正式发布React Hook之后,已经过去了5个版本(本博客于React 16.13.1版本时发布)。自己使用Hook已经有了一段时间,不得不说在最初使用Hook的时候也进入了很多误区。在这篇文章中,我会抛出并解答我遇到的一些问题,同时整理对Hook的心得理解。 1. Hook的执行流 在解释后续内容之前,首先我们要明确Hook的执行流。 我们在写 Hook Component 的时候,本质是 Function Component + Hook ,Hook只是提供了状态管理等能力。对 Function Component 来说,每一次渲染都会从上到下 将所有内容重新执行一次,如果有变量,就会创造新变量 。 来看一个简单的例子 // father.js import Child from './child' ; function Father ( ) { const [num, setNum] = useState( 0 ); function handleSetNum ( ) { setNum(num+ 1 ); } return ( < div > < div onClick = {handleSetNum} > num: {num} </ div > < Child num = {num} > </ Child > </ div > ); }

ZooTeam 前端周刊|第 82 期

别等时光非礼了梦想. 提交于 2020-08-18 04:10:33
ZooTeam 前端周刊|第 82 期 浏览更多往期小报,请访问: weekly.zoo.team Cherry-Pick | 一日一 Git - 掘金 Cherry-Pick 该 Git 命令能优雅的满足你将任一节点移植到指定分支的需求,还可以妙用于 CodeStream 。 React Router原理 - 简书 原文地址 blog.poetries.top/2018/12/20/… 一、React Router基础之history... React 学习之路由HashRouter和BrowserRouter - leahtao - 博客园 React 学习之路由HashRouter和BrowserRouter - leahtao - 博客园 前端走进机器学习生态,在 Node.js 中使用 Python 从今天开始,你就可以开始看着 Python 的文档,使用 JavaScript 来“学习和使用”机器学习和深度学习了! (77) 基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇 - 掘金 写在开头 微前端系列文章: 基于 qiankun 的微前端最佳实践(万字长文) - 从 0 到 1 篇 基于 qiankun 的微前端最佳实践(图文并茂) - 应用间通信篇 万字长文+图文并茂+全面解析微前端框架 qiankun 源码 - qiankun 篇...

五月中级前端面试报告

倖福魔咒の 提交于 2020-08-17 23:40:40
前端,面试时间 5.7-5.19,共计两周。西安,薪资区间 10-15 由于考虑到个人发展原因,从杭州回到了老家陕西,面试了7、8家,2个offer收场。记录一下面试情况。(题目不重要,重点在于如何将眼花缭乱的题目分类到你的知识体系中。 公司A 公司情况:初创公司,银行项目,人数20+,需出差。 技术栈:前端vue+后端spring 问题: url输入到页面显示全过程 vuex包括哪些内容 vue项目优化 computed和watch区别 vue-router钩子介绍 vue-router懒加载实现 思考:问题不多,浏览器原理+vue全家桶,紧张原因computed、watch区别没答上来 公司B 主要问项目,我简历项目是ERP+公众号+数据大屏 问题: 项目难点 权限模块粒度怎样设计的,具体到代码如何控制?全部都用if-else?不是的话怎么抽离 你刚才说的是整体架构和实现,可以看出你对业务掌握的比较好,那具体到前端,你做了什么? 公众号开发项目具体说说 如何部署?Nginx如何配置 为什么用node来做 你觉得整个项目核心在哪? 微信公众号事件用过哪些? 数据可视化项目介绍下 思考:负责人注重项目,基础知识没问,问题就集中在「项目难点、亮点、解决方法、个人思考」。整体下来感觉自己的项目几乎无亮点可言,实际上也是没有对自己的项目核心深挖,项目不在多

9个典型的开发者关系面试题

只愿长相守 提交于 2020-08-17 18:49:21
越来越多的科技公司正在从传统的企业销售思路转变为以开发者至上的思路来推广产品。因为开发者不喜欢这类销售方式,所以电话销售和演示将不起作用。 相反,平台需要采用类似于消费者可能采用手游或电商应用的方式。 但是,开发者也不太可能接受那些游戏和电商应用上的那些Facebook广告。 启动开发人员关系计划,可以推动开发者的使用并建立起更有效的关系,但是由于开发人员关系是一个崭新的角色,所需的技能和责任相比销售和工程等已经成熟的角色来说更加模糊。 本文概述了招聘开发者关系经理时应注意的事项。有关开发人员关系的概述,可以先了解一下什么是开发者关系。 因为开发者关系对于任何与开发者社区互动的人来说都是一个包罗万象的角色,所以在面试任何候选人之前,你应该列出这个角色的关键目标。一些开发者关系的角色侧重于社区参与和开发者宣传。 他们的主要目标是提高产品认知度,这要求他们在会议上发言,扩大自身影响力,并参与社交社区(如Twitter或Reddit)互动。 其他一些开发者关系的角色更专注于产品管理和开发者经验。他们的主要目标是平台的采用和使用,这要求他们通过迭代的方式完成用户引导、文档与公共的API/SDK。 无论扮演那种角色,开发者关系经理都需要清晰地沟通,并深入浅出地把深奥的技术主题表达出来,以便开发者轻松的理解。很多时候,开发者关系是公司线上线下的形象代言人。 | 1.

React 如何封装原生事件对象

萝らか妹 提交于 2020-08-17 18:28:06
这篇文章的目的:看 react 如何在一个具有不同类型的原生对象的基础上封装一个可扩展的对象, 更多 被封装的原生对象: 浏览器的原生事件对象 nativeEvent 封装后的构造函数: 合成事件对象 SyntheticEvent 首先,确定需要用到那些原生对象上的属性,以及那些属性需要做特殊处理,比如兼容问题,比如降级处理等的给: const EventInterface = { type : null, target: null, // currentTarget is set when dispatching; no use in copying it here currentTarget: function () { return null; }, eventPhase: null, bubbles: null, cancelable: null, timeStamp: function (event) { return event.timeStamp || Date.now(); }, defaultPrevented: null, isTrusted: null, }; 复制代码 构建 SyntheticEvent 的构造函数 首先将入参设置到实例对象上,可以不关注入参的含义 this.dispatchConfig = dispatchConfig; this.

single-spa踩坑记

跟風遠走 提交于 2020-08-17 18:19:52
其实本来应该写个介绍的,但是我看到其他的文章写得很完善了,所以就来写写我在其中遇到的一些问题就好了。 安装 single-spa 请看沉末的 这篇文章 。 背景 简单介绍下背景吧~ 为什么要用 single-spa 呢,是因为公司的项目需要拆项目了,这个时候就需要知道微前端的概念了,那么什么是微前端呢。 微前端服务 微前端架构是一种类似于微服务的架构,由ThoughtWorks 2016年提出,它将微服务的理念应用于浏览器端,即将 Web 应用由单一的单体应用转变为多个小型前端应用聚合为一的应用。 由此带来的变化是,这些前端应用可以独立运行、独立开发、独立部署。 在项目中是运用 single-spa 去搭建微前端框架的,在搭建框架之前,我们需要知道两个知识点,什么是 single-spa 和 importmap 。 single-spa 而 single-spa 是一个用于前端微服务化的 JavaScript 前端解决方案。 特点: (兼容各种技术栈)在同一个页面中使用多种技术框架(React, Vue, AngularJS, Angular, Ember等任意技术框架),并且不需要刷新页面. (无需重构现有代码)使用新的技术框架编写代码,现有项目中的代码无需重构. (更优的性能)每个独立模块的代码可做到按需加载,不浪费额外资源. 每个独立模块可独立运行. importmap

前端vsCode常用插件推荐并留档

对着背影说爱祢 提交于 2020-08-17 17:56:43
首先基础的插件安装:方便代码书写、阅读及美观 // 适用于 VS Code 的中文(简体)语言包 Chinese (Simplified) Language Pack for Visual Studio Code // VSCode 注释翻译 Comment Translate // 自动关闭标签 Auto Close Tag // 自动重命名标签 Auto Rename Tag // 美化代码 Beautify // 美化代码 Prettier - Code formatter // 智能路径 Path Intellisense // 支架对着色器 Bracket Pair Colorizer // 文件图标 vscode-icons // es规范扩展 ESLint 其次根据自己所用框架进行安装:目前使用react // react 代码片段 ES7 React/Redux/GraphQL/React-Native snippets 最后非开发必须的插件:给人眼前一亮的感觉 // 多种自定义注释颜色 Better Comments // 在vscode 进行浏览器预览 Browser Preview // 文件函数预设注释模板 koroFileHeader // 提供更多的代码实现方式推荐和问题推荐修复 JavaScript Booster // 截图更美观 Polacode

前端学习建议汇总(留着自己看的心灵鸡汤)

心已入冬 提交于 2020-08-17 16:42:50
第一阶段的学习:html+css+javascript入门 我知道很多人前端入门都是w3school和菜鸟教程上学习,我个人是不推荐的。上面的知识点太多,平时工作中跟本用不到。如果你在w3School上从头开始看知识点,你只会边看边忘,效率太低了。记住不要去做死记硬背的工作,用的多了自然就记住了,实在记不住的还有度娘。(入门学习者最爱犯的错误就是纠结,总纠结自己今天学习的某个标签、某个css语法没有记住。我只想说这不是高中考试,还要默写。大概了解就可以,等以后项目做多了,复制黏贴的次数多了,也就记住了) 二、html5+css3+javascript高级 过了第一关新手村,有点难度的东西来了,并且这块知识点也是面试问的最多的。(入门学者最爱犯的错误就是在学习框架之后,就把这块给扔掉。一定要记住,这块知识点才是初级前端面试的重点。也是一面必考的知识点) 这一趴,我不推荐看文章学习。因为知识点稍微有点复杂,看文字的学习效率没有看视频高,慕课网上有很多视频,讲解也很透彻,会比看文字学习效率高很多。当然网上也有很多免费的视频课程(比如B站),不过很多都是过时了的,或者不够系统的。大家选择教学视频的时候注意避开已经过时的东西,与时俱进。 三、es6+sass 这块的内容属于扩展的内容,es6是JavaScript的扩展,sass是css的扩展。对于入门学者来说可能会觉得这块内容比较陌生

自己搭建的react项目引入scss或css

梦想与她 提交于 2020-08-17 16:02:51
react、webpack、bebal7搭建项目参考我的上一篇博客 https://blog.csdn.net/qq_39501040/article/details/102921945 在搭建完成react项目后,在开发过程中引入css或scss时出现报错,无法解析css或scss文件内容 解决方法如下: npm install --save-dev css-loader style-loader node-sass sass-loader 安装这些依赖的目的是为了webpack打包时能将css进行打包 安装过后需要修改webpack.config.js,在module下的rules中加入以下内容 { test: /\.s?css$/, loader: 'style-loader!css-loader!sass-loader' } 这种情况下,在运行时就可以解析css文件了 但是。。。这时css文件的内容时在html页面的head标签下的<style>标签中,如果还想在打包时将css文件单独打包出来,需要以下操作 npm install --save-dev mini-css-extract-plugin 然后修改webpack.config.js const MiniCssExtractPlugin = require("mini-css-extract-plugin");

前端工程师到底要需要掌握什么技能、到什么程度,才能去找工作?

半腔热情 提交于 2020-08-17 15:48:28
目录 个人目标 大厂 创业公司 公司要求 技术能力 基础 框架 软技能 沟通能力 STAR 框架 原理回答框架 总结 好多人都想知道,前端工程师到底要需要掌握什么技能、到什么程度,才能去找工作?最简单的答案: 把 html、css、 js 基础学扎实,再掌握vue或react前端框架之一就可以了。 真的是这样吗?技术上看似乎没问题,但是找工作不只要从技术上下手,还要从个人目标和公司的招人标准综合进行考量。那么接下来,我们从这几个方面来分析一下,前端工程师找工作的必要条件。 个人目标 现在我们的教育并没有太着重于个人目标和职业规划的设定,但找工作与其关系特别大。如果你想找一个大厂,那么准备方向就跟创业公司完全不一样。我们分别来看一下这两种情况。 大厂 大厂可能更看重你的 html 、 css 和 JavaScript 基础,以及 数据结构 、 算法 和 计算机网络 。你的准备方向就应该是这些基础方面的东西。另外还有一些原理方面的知道,比如你要做 vue 或者 react 开发,那就要知道 virtual dom 和 diff 算法 的原理。 创业公司 如果你的目标是创业公司(这种公司的发展前景不可预测,可能大展宏图,也可能半途而废),你需要有大量的实战经验,因为创业公司为了抢占市场,产品的开发进度一般都会特别紧张,你需要去了就能够立刻干活;而理论方面的东西则会关注的少一些。针对面试