【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

前端每周清单第 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:003105
用户头像

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

关注

评论

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

联想积极参与CSMM标准制定和推广,推进中国软件产业高质量发展

科技热闻

【布道API】API设计应该了解的HTTP方法和特性

devpoint

RESTful HTTP协议 6月日更

Java字符串池、常量池、intern的爱恨纠葛

叫我阿柒啊

Java 常量池 intern 字符串常量池

云小课 | 华为云KYON之私网NAT网关

华为云开发者联盟

网关 华为云 KYON企业级云网络 私网NAT网关 重叠组网

助力碳中和,EMQ与SAP共同构建绿色IoT解决方案

EMQ映云科技

开源 5G 碳中和 SAP 碳达峰

从单体系统到微服务

escray

学习 极客时间 朱赟的技术管理课 6月日更

【Flutter 专题】107 图解自定义 ACEPageMenu 滑动菜单 (二)

阿策小和尚

Flutter 小菜 0 基础学习 Flutter Android 小菜鸟 6月日更

来自 Apache APISIX committer 的经验分享 —— 编程之夏专访

API7.ai 技术团队

后端 技术人 API 网关

项目管理100问 | 研发团队如何实现无缝协作

万事ONES

项目管理 ONES Project 研发团队

GrowingIO 增长平台产研项目管理实践

GrowingIO技术专栏

项目管理 程序员 Jira growingio

为什么聪明的程序员会写出糟糕的代码

实力程序员

技术干货 | 如何实现对动态PPT的云端录制?

ZEGO即构

音视频 WebRTC RTC 即构 动态PPT录制

产品策略闭环是个什么环?

万事ONES

项目管理 研发管理 ONES 产品策略

和12岁小同志搞创客开发:如何选择合适的控制器?

不脱发的程序猿

DIY 创客开发 如何选择合适的控制器?

【FlinkSQL】Flink SQL Query 语法(二)

Alex🐒

flink FlinkSQL flink1.13

「终!」☕️【Java技术之旅】带你进入String类的易错点和底层本质分析!

洛神灬殇

Java 字符串 字符串常量池 6月日更

缓存与数据库的双写一致性

leonsh

MySQL redis 缓存

Java 并发编程—— Executors 分析应用

Antway

6月日更

可视化及时把控营运状况,助力管理效率提升80%

一只数据鲸鱼

数据可视化 智慧城市 智慧园区 三维可视化 智慧楼宇

机器学习入门:多变量线性回归

华为云开发者联盟

机器学习 多变量线性回归

如何解决回归任务数据不均衡的问题?

华为云开发者联盟

深度学习 模型 标签 数据不平衡 DIR

Python——列表元素的增删改

在即

6月日更

和12岁小同志搞创客开发:拿到一款控制器,要怎么分析?

不脱发的程序猿

DIY 创客开发 怎么分析控制器?

我不服!这开源项目居然才888个星!?

why技术

Java

ONES CTO 冯斌 | 大型团队敏捷项目管理实践与思考

万事ONES

项目管理 研发管理 团队协作 ONES 研发工具

WorkPlus私有化「数智融合」移动平台

WorkPlus

Dokcer Compose部署Nebula Graph配置文件

阿呆

配置信息

相约厦门!HarmonyOS Connect伙伴峰会将于6月17日举办

科技汇

技术实践丨体验量子神经网络在自然语言处理中的应用

华为云开发者联盟

自然语言处理 量子 量子神经网络 量子模拟

只记得文件类型如何用EasyRecovery实现恢复?

淋雨

数据恢复 EasyRecovery 文件恢复 照片恢复

WorkPlus Lite 企业级移动平台

WorkPlus

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