写点什么

前端每周清单第 21 期:JS 项目开发样式指南;基于 Vue 的分角色权限验证;深入 React.js 内部原理

  • 2017-07-10
  • 本文字数:4773 字

    阅读完需:约 16 分钟

新闻热点

国内国外,前端最新动态

开发教程

步步为营,掌握基础技能

  • Styled-Components 实战:Styled-Components 是由 Max Stoiber 与 Glen Maddern 创建的新的 CSS-in-JS 工具库,能够帮你组织 React 或者 React Native 项目中的样式声明。本文则着眼于介绍 Styled-Components 的设计理念与基本用法,首先介绍了 Styled-Components 的设计目标,然后介绍了如何使用 Styled-Components 来创建可复用的组件或者创建全局样式声明。( https://parg.co/bev )
  • React Redux 概念与工作流清单:本文包含了一张关于 Redux 概念与工作流的清单图解以及较为详细地渐进式 Redux 基础概念介绍。本文首先概述了项目开发中使用 Redux 的意义以及 Redux 相关的技术栈,然后介绍了 Reudx 中 Store 的含义与如何与 Immutable 协同使用;接下来本文介绍了 React Redux 应用中组件的层次划分,如何定义使用 Action、ActionCreator、Reducer 等等;更多 Redux 相关资料参考 https://parg.co/bVQ 。( https://parg.co/bej
  • 基于 Vue.js 2 的分角色权限验证:本文作者因为 Vue.js 平滑的学习曲线与易于理解的官方文档而倾向于使用 Vue.js 进行前端开发工作,本文即是作者介绍如何利用 Vue.js 2 来为项目添加基于角色的权限控制功能。作者在本文中首先介绍了基于角色的权限控制的概念与设计,然后讨论了如何使用 vue-cli 来构建基础项目架构并且按特征划定目录层次,最后介绍了关键部分的代码实现以及如何使用 Vuex 来管理应用状态;更多 Vue 相关资料参考 https://parg.co/byL 。( https://parg.co/bIs )
  • 试用新的 Angular HTTP Client :在 Angular 4.3.0-rc.0 版本在,HTTP Client API 得到了极大的改造与提升,本文即是介绍新版本的 Angular HTTP Client 的用法。在新版本的 HTTP Client 中,其默认假设以 JSON 格式进行返回值解析,并且引入了灵活的 Interceptor 以动态操作请求头或者响应体;同时新版本的 HTTP Client API 为上传与下载这些耗时操作提供了实时进度反馈回调,以方便开发者进行调试或者反馈给用户。( https://parg.co/bIV )
  • 基于 Vue.js 与 Laravel 构建实时仪表盘:本文是来自 Spatie 的工程师,介绍基于 Laravel 与 Vue.js 构建,实时的队伍与事件信息展示面板的实践总结。本文首先介绍了历史项目的不足以及目前项目的设计考量,然后讨论了前端网格布局的解决方案。接下来作者分别介绍了服务端基于 Laravel 与客户端基于 Vue.js 的关键代码的实现;更多 Vue 相关资料参考 https://parg.co/byL 。( https://parg.co/bIJ )

工程实践

立足实践,提示实际水平

  • 接口安全自检清单:本文涵盖了项目接口在设计、测试与发布阶段应该注意的安全事项。本清单首先阐述了应该使用标准的权限控制方式 JWT 或者 OAuth 来替代基础的 Basic Auth,然后分别讨论了 JWT 与 OAuth 的设计要点。接下来本清单还列举了对于接入过滤与防 DDoS 攻击、使用合适的 HTTP 方法并且对用户输入进行有效校验、避免关键资源外泄、设置合理的响应头等等内容。( https://github.com/shieldfy/API-Security-Checklist )
  • JavaScript 项目开发样式指南:开启新的项目就好像在绿地上肆意撒欢,此时的开发者拥有极大的自由;不过如果缺乏良好的基石,未来的项目维护可能会成为你的梦魇。本文即搜集了来自 Hive 研发团队的 JavaScript 项目开发指南,涵盖了 Git、文档规范、环境变量控制、依赖管理、测试、文件结构与命名、代码样式、日志、API 设计等多个方面;更多 JavaScript 工程实践资料参考 https://parg.co/bIO 。( https://github.com/wearehive/project-guidelines )
  • 大型应用开发中使用 Redux 的五个建议:Redux 是非常优秀的应用状态管理工具,单向数据流结构允许开发者专注于业务逻辑的开发。本文作者从自身实践出发总结出了大型项目中 Redux 的使用建议,包括建立数据索引并且使用选择器来访问数据、将标准状态独立于可变的界面状态与用户编辑状态、在界面之间合理地共享数据、提取公共地 Reducer 函数以及如何较好地连接 React 组件与 Redux 状态树等等;更多 Redux 相关资料参考 https://parg.co/bVQ 。( https://parg.co/bIi )
  • Basement:蚂蚁 Web 研发流程和基础服务实践:在企业级环境下,Web 研发常常会遇到流程冗长繁琐,依赖升级困难等问题;而研发过程中依赖的各种服务,也总有着迥异的申请流程和使用方式,文档匮乏。Basement 作为一个主要面向蚂蚁前端的 Web 应用研发流程和基础服务平台,因其简单易用,在大阿里也有不少用户。
  • 前端 JavaScript 面试问题总结:本文作者发现目前并没有太多令人满意的前端 JavaScript 面试问题列表,因此他基于自己的面试经历与实践总结出了本文。本文主要包含以下部分,首先是基础概念的认知,譬如对于闭包、EventLoop、REST 等概念的介绍;然后是对于编码能力的考量,譬如对于常见的数据结构与算法的实现、代码调试能力与错误定位的评测等等;最后是对于整体系统设计能力的考量,譬如如何设计全栈的 Twitter 实现架构等等。( https://parg.co/bIL )

深度阅读

深度思考,升华开发智慧

  • 深入 React.js 内部原理:本系列文章详细介绍了 React.js 内部工作原理,作者通过调试整个代码库,分析代码执行调用顺序将整个逻辑以流程图方式清晰地展示出来,并且详细介绍了内部实现中使用到的关键概念与方法。本系列文章会包含 Stack Reconciler 与 Fiber 两个部分,目前完成的 Stack Reconciler 部分分为十五个小节,包含了从渲染函数调用开始介绍 JSX 转化为 DOM 的流程、内部事务处理到组件挂载于与更新流程等等内容;更多 React 相关资料参考 https://parg.co/bM1 。 ( https://parg.co/be2 )
  • 利用 WebGL 释放 GPU 的计算潜力:随着大数据时代的到来,计算能力日渐成为性能的关键瓶颈之一;而众所周知 GPU 相较于 CPU 有着更为强大的计算能力,本系列文章即是介绍如何利用 WebGL 实现 GPGPU(General Purpose Computing on Graphics Processing Units)高性能计算。本系列文章首先讨论了利用 WebGL 进行 GPGPU 计算的可行性,然后介绍了具体的实施步骤;主要步骤包括矩阵初始化、矩阵计算、结果回传、条件控制、不稳定性处理、样例实践等几个部分。( https://parg.co/bIQ )
  • Vue 直出内存泄露问题的追查实践:近期,作者遇到了 Vue 直出内存泄露问题,并进行了追查。其项目背景是,作者在一次规模较大的运营活动中正好碰到了内存泄漏的问题,技术背景和业务背景分别如下:技术背景:node 直出项目,直出用到了 Vue 的直出方案;业务背景:一次 PV 最高达到 1400W 的运营活动 qps 的压力下,后期使得服务出现一定错误率。本文将回顾整个追查的实践过程。( https://parg.co/bIN )
  • JavaScript 开发中常用的十大数据结构详解:数据结构是软件开发的重要组成部分之一,也是求职面试中常见的主题之一;本文将回顾介绍 JavaScript 中常用的十大数据结构,并且给出详细的教程与在线实践链接。本文涉及到的数据结构包括链表、栈、队列、集合、映射、哈希表、二叉搜索树、Trie 树、二叉堆、图等;更多数据结构与算法相关资料参考 https://parg.co/bIt 。( https://parg.co/bIC )

开源项目

乐于分享,共推前端发展

  • Ink :Ink 允许我们以类似于编写 React 组件的方式编写命令行交互界面,最大的区别在于 Ink 会将组件渲染为输出到标准控制台的字符串。笔者觉得阅读 Ink 的源代码也是不错地了解简化版的 React 内部运行机制的方式,可以了解基本的 JSX 转换、虚拟 DOM 渲染与比较、批次更新等内容。( https://github.com/vadimdemedes/ink )
  • real-world-react :本仓库搜集了一系列基于 React 开发的真实环境下的开源应用代码库,能够帮助初学者从资深开发者的代码中逐步学习了解 React;应用涵盖了基于 Redux 的各种资讯类应用、常见的音乐播放器等等多个方面。( https://github.com/jeromedalbert/real-world-react )
  • icaro :icaro 是轻量、高效地 JavaScript 对象观察者实现,能够自动监测 JavaScript 中对象的变化并且进行相应地譬如 DOM 更新等操作。icaro 使用了大量的 ES6 的特性,譬如 Proxies、WeakMaps、Maps 以及 Symbols,是非常不错的可以用来学习利用最新的语言特性实现 JavaScript 响应式框架的开源库。( https://github.com/GianlucaGuarini/icaro )
  • titanic :titanic 为我们提供了一系列有趣的可变的 SVG 图标,这些图标能随着用户的点击或者其他操作做出相应地动画反馈。titanic 提供的动画图标包括了单选框、邮箱、笑脸等等。( https://github.com/icons8/titanic )
  • formik :React 中的表单处理一直是痛点所在,而目前很多的表单处理库添加了太多的抽象,不仅不易于理解而且会造成许多额外的性能损耗。而 Formik 则提供了简便易用的高阶组件来帮你处理将 Props 转化为扁平的 React 状态、自动化字段验证并且进行错误提示、将扁平地 React 状态转化为接口可用的对象这三个任务。( https://github.com/jaredpalmer/formik )

巅峰人生

微软顶级代码女神给年轻程序员的一些宝贵建议:本文是微软公司全球资深副总裁潘正磊(Julia Liuson)女士做客大咖说的视频回顾和要点总结文。

Julia 目前领导微软全球开发平台工程团队,负责 Visual Studio,. NET 开发框架,C# 语言……是担任驱动微软开发工具与开发技术大规模开源化的幕后推手,以及带领全球部门的几千名资深开发者完成迈向 DevOps 的成功转型,让微软从一个三年磨一剑的套装软件公司,成为现在能够在云端上高速迭代交付,与新兴豪杰们匹敌的互联网公司。本文分享了 Julia 的一些观点:面对日新月异的技术,如何学习与取舍?微软从封闭到开源,转变为哪般?程序员跟年龄关系大吗?如何从程序员迈向领导者?女性程序员应该如何看待自己的职业发展?

前端之巅

「前端之巅」是 InfoQ 旗下关注前端技术的垂直社群,加入前端之巅学习群请关注「前端之巅」公众号后回复“加群”。投稿请发邮件到 editors@cn.infoq.com,注明“前端之巅投稿”。


感谢韩婷对本文的审校。

给InfoQ 中文站投稿或者参与内容翻译工作,请邮件至 editors@cn.infoq.com 。也欢迎大家通过新浪微博( @InfoQ @丁晓昀),微信(微信号: InfoQChina )关注我们。

2017-07-10 19:003226
用户头像

发布了 60 篇内容, 共 18.0 次阅读, 收获喜欢 9 次。

关注

评论

发布
暂无评论
发现更多内容

注册中心 Nacos 异常实例需要30s才能剔除 Nacos心跳时间设置(踩坑)

laker

Spring Cloud nacos spring cloud alibaba

【LeetCode】盒子中小球的最大数量

Albert

算法 LeetCode 2月春节不断更

浪潮云洲:从工业互联网实践想开去

工业互联网

尝试从用户的角度思考(PO的姿势)

Bruce Talk

Scrum 敏捷开发 Agile Product Owner

话题讨论 | 新年将至, 程序员如何以代码送出新春祝福

孙叫兽

Java 程序员 大前端 话题讨论 新春祝福

2 期架构师训练营 - 第九周作业与总结

云飞扬

架构师训练营第2期

最新版gradle安装使用简介

程序那些事

Gradle 程序那些事 构建工具 build 打包工具

如何在数据库中进行RBAC权限应用

BinTools图尔兹

数据库 权限管理 数据管理 rbac

sql注入竟然把我们的系统搞挂了,怎么办?

苏三说技术

java安全

5G花式过年指南

脑极体

Java函数式编程Stream.collect()为什么这么受欢迎?

码农架构

Java 架构 函数式编程

《未来呼啸而来》- 技术改变生活

石云升

2月春节不断更 技术改变生活 未来呼啸而来

OpenCV--平移与旋转

IT蜗壳-Tango

七日更 2月春节不断更

大作业(一)

bing5tui3

极客时间架构师二期

kafka的实现原理

八两

kafka Kafka知识点 kafka实现原理 kafka架构

2 期架构师训练营 - 第四周作业与总结

云飞扬

架构师训练营第2期

Linux Lab 进阶: Rootfs 文件系统 &Linux 与 Uboot 调试

贾献华

Linux Linux Kenel rootfs uboot usb

2 期架构师训练营 - 第三周学习总结

云飞扬

架构师训练营第2期

物流系统抢单简单设计

DL

百度大脑 EasyData 智能数据服务平台上线文本数据清洗功能

百度大脑

驱动力读书笔记之五

张老蔫

28天写作

容器 & 服务:Jenkins本地及docker安装部署

程序员架构进阶

容器 jenkins 七日更 28天写作 2月春节不断更

百度大脑 EasyEdge 推出端云协同服务,大幅提升本地部署模型迭代效率

百度大脑

2 期架构师训练营 - 第六周作业与总结

云飞扬

架构师训练营第2期

2 期架构师训练营 - 第八周作业与总结

云飞扬

架构师训练营第2期

阅读笔记:Python A-Z 技巧

小匚

Python 读书笔记 日常思考

图文详解网络基础知识

日记 2021年2月7日(周日)

Changing Lin

个人感悟 2月春节不断更

2 期架构师训练营 - 第七周作业与总结

云飞扬

架构师训练营第2期

【Python】给PDF添加水印

AXYZdong

Python 2月春节不断更

第十一周 安全稳定 作业 「架构师训练营 3 期」

胡云飞

前端每周清单第 21 期:JS 项目开发样式指南;基于 Vue 的分角色权限验证;深入 React.js 内部原理_语言 & 开发_王下邀月熊_InfoQ精选文章