react

前端开发,我有一些经验想和你分享

社会主义新天地 提交于 2020-08-10 20:04:46
写在前面 最近身边有不少朋友想转行去做前端开发,然后跑过来问我,向我了解前端岗位,以及给他们一些建议等等;他们有的还没毕业,对于即将到来的社会毒打充满着迷茫和不安,有的已经工作两三年,突然觉得自己不合适当下这个份工作,想谋求一份别的职业。 选择一份职业不在于这份职业可以给你带来什么,而是你可以因此成为什么,这篇文章我会跟你聊聊关于前端的一些见解和「入坑」指南,希望可以给你的职业规划多一份参考和建议。 本篇文章中,你将会收获: 前端工程师岗位发展和分析 前端的发展前景和钱景 如何对自己当下的职业规划做出选择 前端学习路线的三个阶梯 本篇文章适合以下人群 即将毕业的计算机专业应届生 想要转行前端开发的你 关于前端开发这个岗位 不少人对于前端开发充满着各种误解,觉得就是写写网页 、切切图的,没什么了不起;前几年开始,市场上出现了一些可视化构建网页的工具和平台,可以一键发布,直接生成网页效果,有人就说,这样的话,前端开发是不是要丢饭碗了?前端技术发展是不是到达瓶颈了?前端的岗位是不是快饱和了等等... 往往提出这些问题的人,大多数都是不了解前端工程师和前端开发的人。 首先不得不说,在过去的一段时间内,前端工程师当时还叫做「网页设计师」,工作内容确实是写一些 HTML 和 CSS 样式,偶尔还打开 PS 切个图,放到现在,如果只会这些技能肯定是找不到工作的;其次

react hook useRef

假如想象 提交于 2020-08-10 18:26:28
可以暂停的定时器, 使用ref保存 定时器的handler import React, { useState, useEffect, useRef } from "react"; export default () => { const [count, setCount] = useState(0); const ref = useRef(null); const start = () => { console.log("start"); if (!ref.current) { console.log("start ref"); ref.current = getInterval(); } }; const getInterval = () => setInterval(() => setCount((c) => c + 1), 100); const stop = () => { console.log("stop", ref); if (ref.current) { console.log("clear"); clearInterval(ref.current); ref.current = null; } }; useEffect(() => { ref.current = getInterval(); console.log("===", ref); }, []);

Web前端兼容性指南

Deadly 提交于 2020-08-10 18:04:17
一、Web前端兼容性问题 一直以来,Web前端领域最大的问题就是兼容性问题,没有之一。 前端兼容性问题分三类: 浏览器兼容性 屏幕分辨率兼容性 跨平台兼容性 1、浏览器兼容性问题 第一次浏览器大战发生在上个世纪90年代,微软发布了IE浏览器,和网景公司的Netscape Navigator大打出手,1998年网景不得不将公司卖给AOL。没有了对手的IE不思进取,W3C标准支持发展缓慢,为以后的IE兼容性灾难埋下了伏笔。到2004年,IE的市场份额达到95%,但在此之后IE的份额逐步遭其他浏览器蚕食,主要包括Firefox,Chrome,Safari和Opera。. 2001年8月27日,微软发布IE6,时隔五年直到2006年才发布了IE7。2009年3月19日,经历了众多测试版后,IE8最终发布,虽然IE8针对旧版IE在多方面做了很大改进,但在HTML5、CSS 3等标准支持方面仍落后于其他浏览器对手。这三个版本的IE是所有兼容性问题的最大根源,堪称前端噩梦。 IE6、7、8不支持HTML5、CSS3、SVG标准,可被判定为“极难兼容” IE9不支持Flex、Web Socket、WebGL,可被判定为“较难兼容” IE10部分支持Flex(-ms-flexbox)、Web Socket,可被判定为“较易兼容” IE11部分支持Flex、WebGL,可被判定为“较易兼容” IE6

10大TypeScript项目,高薪必学

萝らか妹 提交于 2020-08-10 18:03:25
TypeScript 是一种由微软开发的自由和开源的编程语言。它是 JavaScript 的一个超集,而且本质上向这个语言添加了可选的静态类型和基于类的面向对象编程。 TypeScript 提供最新的和不断发展的 JavaScript 特性,包括那些来自 2015 年的 ECMAScript 和未来的提案中的特性,比如异步功能和 Decorators,以帮助建立健壮的组件。 TS 入门: 1.2W字 | 了不起的 TypeScript 入门教程 (830+个👍) TS 进阶: 一文读懂 TypeScript 泛型及应用( 7.8K字) (445+个👍) 另外如果大家遇到前端问题 可以来我的扣扣裙 519293536 一起交流学习。有问题找我 都会尽力帮大家哦 下图显示了 TypeScript 与 ES5、ES2015 和 ES2016 之间的关系: 好的,简单介绍了 TypeScript,下面我们马上步入正题,来开始介绍 ” 这些年我收藏过的 10 个 TS 项目 “ 中的第一个项目 —— AVA 。 AVA 🤖 A framework for automated visual analytics. https://github.com/antvis/AVA AVA (A Visual Analytics)是为了更简便的可视分析而生的技术框架。 其名称中的第一个 A 具有多重涵义

2020年,应届生想要拿到上万的web前端offer,这8个技能必不可少!

放肆的年华 提交于 2020-08-10 14:26:54
如今前端开发的任职要求越来越高了,不仅要掌握 javascript,熟悉vue、react等各种框架,甚至连后端和 python 都得懂。 前几年只要熟练HTML、CSS、JavaScript ,靠扒代码套用代码工具就能找到一份相对不错的工作,看来现在这套是行不通了。 要是碰上面试官问你“Vue数据绑定的原理是什么?React中的Fiber到底是什么?如何控制Promise任务的并发数?Nodejs如何处理高并发?......”,也别觉得夸张,连这些基本内容都有些吃力,那你很有必要重新审视自己的核心技术水平了。 估计小伙伴都出现过这样的困惑: 1、从事前端行业多年,但技术上总感觉不够深入,且很难再有提升; 2、了解多个单独的技术点,但缺乏体系化,没办法串起来; 3、停留在使用框架/工具上,很难基于业务场景来提出新的模型; 4、对于新框架和语言的出现缺乏敏感度,前沿的技术了解不够深入; 5、想进入大厂,如阿里,百度,头条等; 现在前端已进入技术深水区,发展也常涉及到后端、人工智能领域及物联网等多个层面。在目前这个行业阶段要是只会套代码、不懂源码,实在太吃亏了。 因此,为了让大家能拓宽知识面,解决求职就业问题,以获得更好的职场发展,自此分享对于学习前端现在关键的8个技能 第一部分:VUE全家桶及实战代码 Vue 作为国内主流的 JavaScript 前端框架,不仅上手相对简单

前、后端分离权限控制设计和实现思路

拟墨画扇 提交于 2020-08-10 13:36:52
云栖号资讯:【 点击查看更多行业资讯 】 在这里您可以找到不同行业的第一手的上云资讯,还在等什么,快来! 简述 近几年随着react、angular、vue等前端框架兴起,前后端分离的架构迅速流行。但同时权限控制也带来了问题。 网上很多前、后端分离权限仅仅都仅仅在描述前端权限控制、且是较简单、固定的角色场景,满足不了我们用户、角色都是动态的场景。且仅仅前端进行权限控制并不是真正意义的权限控制,它只是减少页面结构暴露、增强用户体验的功效。 场景 系统为后台管理系统,包含了用户创建、用户登录、用户管理自己的资源。用户经常会新增、删除,也可以根据工作情况随时调整页面、功能权限,所以采用用户-角色-页面权限方案实现。 为什么不行: 根据前端路由表显示左侧菜单,但vue-router的路由表主要为了组织代码,经常我们所需要的菜单并非一致。比如某个前端路由a子路由有b、c,但菜单中我们想要直接一级菜单就显示b、c或者将b、c各放到其他菜单下。所以这种非常不灵活。 一个路由是菜单还是页面?是否需要显示到菜单中?是否验证权限?哪个角色或者用户拥有权限?这些都需要写到前端路由里面,一旦有任何权限变动就要大量调整代码。 如果权限写死在前端,那么角色或者用户必须已知且固定不变。比如页面1的meta增加属性标识可访问的角色为a和b 页面 一个页面即一个前端页面,比如首页、用户管理页、资源管理页等。

单元测试与单元测试框架 Jest

我怕爱的太早我们不能终老 提交于 2020-08-10 12:52:09
什么是单元测试? 测试是一种验证我们的代码是否可以按预期工作的手段。 被测试的对象可以是我们程序的任何一个组成部分。大到一个分为多步骤的下单流程,小到代码中的一个函数。 单元测试特指被测试对象为程序中最小组成单元的测试。这里的最小组成单元可以是一个函数、一个类等等。 单元测试的优势 由于被测试对象的简单(通常只有一个或多个输入以及一个输出),这就决定了单元测试开发起来也很简单,通常每个测试只有几行到十几行不等。测试代码的简单表示它可以被更频繁的执行(事实上,很多单元测试框架都有 watch 模式。每次改动代码时都会自动执行单元测试)。更频繁的执行意味着更早的发现问题。 试想,随着代码的不断迭代,程序中总有某些位置会频繁出现某类问题。在没有单元测试时程序员之间往往都是“口口相传”,隔一段时间很可能由于疏忽还会犯同一个错误。有了单元测试我们就可以为这些问题点编写对应的测试代码,每次提交代码前都执行一遍,可以极大的降低相同 bug 重复出现的概率。 此外,要为一个被测试对象编写单元测试,那么它应该首先是容易被测试的(这似乎是一句废话)。反过来讲,如果你面对一个函数、类却很难编写测试代码的时候,很可能是你的代码设计上存在问题。比如和外部依赖耦合过于紧密。这种情况下,编写单元测试的过程会倒逼我们优化我们代码的结构。将复杂的代码拆解成为更简单、更容易测试的片段

Java收入不再最低,Python被TypeScript击败,2020全球开发者调查报告出炉

北慕城南 提交于 2020-08-10 11:58:11
Stack Overflow 2020 年度全球开发者调查报告出炉。报告显示,JavaScript 连续八年成为最常用的编程语言,而在最受开发者喜爱的编程语言榜单中,Python 排名第三,较去年下降一位,被 TypeScript 超越。另一值得关注的结果是,Java 语言的薪酬收入不再是最低了。 机器之心报道,参与:魔王、杜伟。 近日,Stack Overflow 发布了 2020 年度全球开发者报告。这是 Stack Overflow 发布的第十次年度开发者调查结果,在今年 2 月份有将近 65000 名开发者参与了此次调查。 与 2018 年 的 10 万参与者和 2019 年 的 9 万参与者相比,这次调查的参与者数量出现下降。Stack Overflow 表示「今年,我们不打算成为规模最大的调查,而是想使此次调查更具代表性,能够代表全球各地程序员的多样性。」 这次调查涉及开发者基本情况、技术、工作和社区多个方面。机器之心选取了该调查报告的核心内容进行介绍,完整报告参见以下链接: 报告地址: https:// insights.stackoverflow.com /survey/2020#community 调查结果概览 在过去五年的最受开发者喜爱的技术榜单中,Python 语言的排名持续上升。但今年 Python 被 TypeScript 击败,从去年的第二名掉到了第三

小实操(6):利用正则来解析url参数

时光毁灭记忆、已成空白 提交于 2020-08-10 09:50:08
** 实例: 利用html表单和js的数学对象及函数做一个有验证码的简单登录表单 实操:利用日期对象和方法以及其他相关知识实现简单的钟表功能 小实操(3): 利用键盘事件实现小人快跑 小实操(4):实现飞机的移动并且能够发射子弹 。。。。。。。 js学习中的小实操(目录) ** 关注小文我们一起学习进步。 实操 今天同样是对前面学习的知识进行巩固和训练。今天学习的是一个解析url参数。 首先url是什么捏? 含义: 统一资源定位符(Uniform Resource Locator,缩写为URL),又叫做网页地址,是互联网上标准的资源的地址(Address)。 今天的训练就是利用正则来解析我们的url参数。 举个栗子: 首先我们随便打开一个网页找一个地址复制过来。 url地址: https://www.sogou.com/sgo?query=%E5%BF%AB%E4%B9%90%E6%98%9F%E7%8C%AB&_ast=1594299256&_asf=www.sogou.com&w=01029901&pid=sogou-clse-60a70bb05b08d6cd&duppid=1&cid=&s_from=result_up&sut=14870&sst0=1594299280933&lkt=0%2C0%2C0&sugsuv

Flutter开发初探

拥有回忆 提交于 2020-08-10 07:19:18
目前跨端开发比较热门的就是 React Native 和 Flutter 了,到底该选哪门技术似乎也快成了大前端圈的一个热门话题。对于web前端来说,基于web生态的 React Native 应该是一个更加顺畅而自然的选择;但 Flutter 让人动心的地方就是高性能和 跨端UI一致性。而 React Native 发展不太明朗和 Flutter 越发成熟的走势对比促使我从观望的心态转为加入 Flutter 。 这里主要就是记录一下学习 Flutter 的一些感想和看法: 包管理 布局和样式 json 状态管理 包管理 pubspec.yaml 文件的作用类似于 npm 的 package.json ,而yaml格式也比json方便。但是不能用命令行自动安装包却让习惯了npm的我觉得麻烦。因为Flutter 安装依赖包是这么一个流程: 打开 pub.dev 网站; 搜索需要的包,得到包的名称和版本; 把包名称和版本填入 pubspec.yaml ,最后才开始下载包。 我觉得应该直接命令行安装包,让它帮我们下载,名称版本自动写入 pubspec.yaml 。如果没有指定版本就是默认下载最新版本,因为很多时候我们并不想知道版本号,给我个能用的最新的版本号就ok了。 布局和样式 就和很多人想的一样,为什么不使用 jsx 或者 xml 格式进行布局,因为基于代码的方式看起来太不直观了