前端每周清单第 30 期:WebVR 指南,Vue 代码分割范式,理想的 React 架构特性

前端每周清单专注前端领域内容,以对外文资料的搜集为主,帮助开发者了解一周前端热点;分为新闻热点、开发教程、工程实践、深度阅读、开源项目、巅峰人生等栏目。欢迎关注【前端之巅】微信公众号(ID:frontshow),及时获取前端每周清单。

新闻热点

国内国外,前端最新动态

  • Chrome 61 新特性介绍:Chrome 61 中即将原生地支持 JavaScript 模块,意味着开发者可以不用 Babel 等转换器即直接在浏览器中运行模块化代码。除此之外,Chrome 61 还允许开发者使用 navigator.share 来触发 Android 原生的分享对话框,并且引入了 WebUSB 接口来访问受信的 USB 设备;更多特性介绍请查看原文。

  • Yarn 1.0 发布:著名的 JavaScript 包管理器 Yarn 终于发布了其 1.0 版本,目前已经有超过 175000 个 Github 上的项目包含了 yarn.lock 文件,每个月有超过三十亿的下载量。在新版本中,Yarn 引入了工作空间、自动合并 lockfiles、可选择的版本解决等特性,并且进行了其他一系列的性能提升与错误修复等工作。

  • Meteor 15.2 发布:经过超 40 个 Pull Request 的请求合并之后,Meteor 发布了 1.5.2 版本;新版本中放弃了对于 MongoDB 2.4 版本的支持,修复了 Node.js 垃圾回收的 Bug,引入了一系列的新特性,详情请查看原文。

  • 百度与 W3C 中国联合组织移动网页加速技术研讨会:2017年8月30日,百度联合W3C中国在北京中关村软件园国际会议中心主办了“移动网页加速技术研讨会”,W3C中国以及腾讯、阿里巴巴及UC、搜狗、小米、傲游、中国移动、中国电信、DCloud、听云等W3C中国区会员及厂商代表积极参与了本次研讨会。本次研讨会探讨了百度MIP(Mobile Instant Pages)技术以及类似技术(如:Google AMP、Facebook Instant Article、腾讯云加速)涉及到的标准化问题,即如何让一个页面被内容分发平台即时展现渲染,从而以更快的加载速度和更友好的展现交互方式来提升用户在内容分发平台上的浏览体验。研讨会探讨了使用Pre-fetch/Pre-render page、Async open page、CDN服务来实现这类服务的可能性。

开发教程

步步为营,掌握基础技能

  • 面向 Web 开发者的 VR 指南:近日来,越来越多的浏览器添加了对于 VR 特性的支持,本文即是盘点下目前浏览器中 VR 技术发展的现状,并且对可用的 WebVR 相关 API 进行简要介绍。本文首先介绍了 VR 以及 WebVR 的基础概念,列举了 WebVR 目前的浏览器以及设备的支持情况,然后分析了 WebVR 的发展趋势与潜在机会;更多 WebVR 相关资料参考这里。

  • 基于 Vue.js 与 Webpack 的三种代码分割范式:代码分割是提升单页应用初始加载速度的重要方式之一,其能有效提升用户体验;本文则着眼于介绍 Vue.js 应用开发中常见的三种代码分割方式,分别是按照页面切分、按照页面的可见区域折叠切分以及按条件加载。更多 Vue.js 相关资料参考这里。

  • 利用 Flow 与 Recompose 编写高阶组件:高阶组件是 React 应用开发中典型的设计模式之一,我们常常会利用 Recompose 库来实践高阶组件;另一方面,Flow 静态类型检测工具能够有效提升应用的鲁棒性,本文即是介绍如何在开发中协同使用 Flow 与 Recompose,编写具有静态类型的高阶组件。本文依次介绍了如何从 Recompose 中引入类型声明、如何为类组件添加类型声明、如何编写高阶函数等内容;更多 React 相关资料参考这里。

  • Node.js 中 async_hooks 图解:async_hooks 是 Node.js 8 中引入的实验性接口,其允许开发者依赖 init、before、after、destroy 四个回调函数监控异步资源的执行情况。本文则是以手绘图形象地介绍 async_hooks 的工作原理与运行机制;更多 Node.js 相关资料参考这里

  • 如何在 Chrome DevTools 中调试 JavaScript:Chrome DevTools 是非常强大的调试工具,本文着眼于介绍如何使用 Chrome DevTools 来添加断点并且单步执行 JavaScript 代码,从而帮助开发者更有效地定位到错误点。本文首先介绍了测试用例以及如何重现错误,然后依次阐述了添加断点、单步调试、检查当前值、修复错误并重新保存等内容;更多 Web 调试相关资料参考这里。

工程实践

立足实践,提示实际水平

  • TypeScript 与 Webpack 的激情碰撞:本文是 ts-loader 的核心维护者之一,分享的多个能提升 Webpack 中 TypeScript 使用体验的插件。fork-ts-checker-webpack-plugin 能够利用子进程来进行类型校验,HappyPack 则允许并发处理多个文件从而提升 Webpack 的编译速度,thread-loader 与 cache-loader 还能进一步提升编译速度;更多 Webpack 相关资料参考 https://parg.co/bVs 。

  • 理想的 React 架构应该具备的特征:React 本身并不是某种应用架构,它只是 MVC 架构中的视图层;本质上只是拥有内部组件生命周期的单向数据绑定的视图库。本文则是作者分享的自己实践中总结出的 React 应用架构特征:控制器与模型层不应该直接被 React 组件表示、Props 尽可能少地在深层组件间传递、尽可能地使用不可变数据以减少计算压力;更多 React 相关资料参考这里。

  • 来自 HousingEngg 的 React Native 实践分享:HousingEngg 去年开始 PWA 化应用以来,极大地提升了用户体验;而在进行移动端应用开发的技术选型时,为了尽可能地完成代码复用,决定用 React Native 进行开发。本文首先介绍了开发目标与 React Native 相关技术栈选型,包括 react-navigation、redux-observable、ramda、redux-persist 等;然后介绍了 storybook、fastlane、detox、sentry 等常用的工具,最后分享了些开发过程中遇到的坑以及构建流程的搭建。更多 React Native 相关资料参考这里。

  • 利用 requestAnimationFrame 优化动作性能:requestAnimationFrame 为我们提供了相对底层的接口,本文则是对于 requestAnimationFrame 的深度解析。本文首先介绍了 requestAnimationFrame 的基础用法与运行机制,然后介绍了其在 Easing 动画、SVG 绘制、定时器方面的应用;更多 Web 动画相关资料参考这里。

深度阅读

深度思考,升华开发智慧

  • car2go 的前端框架选择:本文是 car2go 的工程师分享的他们在前端框架选择时候的考量;今年组建新的前端开发团队时,需要根据团队内成员不同的经验、背景、编程倾向与技能来进行选择。技术选型主要从文档、项目的维护者的投入、StackOverflow 等常见平台的问题丰富度、工具链的完善程度、插件或者扩展的数量、Web 技术标准、上手难易程度、代码风格、API 设计、可扩展性等方面进行考虑,最终的候选者是 React 与 Vue.js;不过因为 Vue.js 更加完善的文档,最终胜出。

  • 面向创业者与 CTO 的 React 开源协议解析:本文是 Facebook 前工程师,后来的创业者对于近日沸沸扬扬的 React BSD + 专利协议的个人解释,希望能够帮助更多的人理解 Facebook 设置该协议的初衷,以及对于使用者的潜在影响。本文首先介绍了 2012 年雅虎对于 Facebook 的专利诉讼及其应对方式,然后分析了该事件对于 Facebook 专利战略的启示;笔者认为 Facebook 设置该协议更多的是处于防卫考虑,避免受到恶意的专利诉讼。不过对于那些潜在的可能和 Facebook 进行直接竞争的创业公司,还是需要慎重地使用 React 等系列框架。

  • 10 个常见的软件架构概述:很多人都会好奇大型商业系统的设计是如何进行的,实际上在大型软件开发启动之前,我们都会选择合适的能够提供想要的功能与高性能的特性的架构;本文则是介绍软件设计中常见的十种架构,对比了其使用场景、优势与劣势。本文依次介绍了分层模式、客户端-服务器模式、主从模式、管道过滤模式、代理模式、点到点模式、消息总线模式、黑板模式、解释器模式等。

  • Mobile Web 性能优化手册:无论是开发者、设计师或者市场专员,都会关心最终用户对于产品的使用体验;而在移动端愈发成为主要入口的今天,移动 Web 的性能优化也愈发重要。本手册则是图文并茂地介绍了移动 Web 优化应该考虑的点。本手册依次分析了性能优化的实际意义、性能优化的感知指标会有哪些、常见的移动 Web 优化策略以及 AMP 与 PWA 等常见的优化建议等内容;更多 Web 性能优化相关资料参考这里。

开源项目

乐于分享,共推前端发展

  • react-imgpro:react-imgpro 是基于 React 的图片处理组件,该组件能够提供常见的缩放、调色等图片处理功能,并且将处理之后的图片以 base64 编码形式返回。

  • Lozad.js:Lozad.js 是基于 IntersectionObserver API 的轻量级、高性能、可配置的纯 JavaScript 懒加载器,其能够被用于进行图片、iframe 等多种形式的元素。

  • Rythm.js:Rythm.js 是非常有趣的 JavaScript 库,它能够为你的页面添加动感地音乐效果,仿佛在摇滚中起舞。

  • Downshift:Downshift 是 PayPal 开源的简单、灵活的 React 输入组件,提供了自动完成、下拉选择等多种丰富的功能;Downshift 提供了 Render Function as Children 的接口,从而给予了开发者极大的灵活性与自由发挥的空间。

  • Fastify:Fastify 是新近发布轻量级的 Node.js 服务端框架,其受到了 Hapi、Restify 以及 Express 的启发,不过在性能评测上却远远优于 Hapi 或者 Express,仅次于原生的 http.Server()。

巅峰人生

  • 5 年,从新手程序媛到研发总监,如何获得跨越式的成长路径?:本文是百度外卖技术总监张灿在二叉树 Live 上的分享,介绍了自己对于技术领域的转型中的转型动机分析、转型问题的应对,如何应对技术发展的瓶颈期,从实习生到研发总监的升级之路在历经的初级菜鸟、资深技术、技术管理等相关方面的感悟与经验总结。

前端之巅

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

前端之巅微信底图-5.jpg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/257467.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

多线程面试题系列(12):多线程同步内功心法——PV操作上

上面的文章讲解了在Windows系统下实现多线程同步互斥的方法,为了提高在实际问题中分析和思考多个线程之间同步互斥问题的能力,接下来将讲解PV操作,这也是操作系统中的重点和难点。本文将会先简要介绍下PV操作的来源和基本使用方法&#xff0c…

软件测试作业——三

作业见《软件测试基础》中文版49页第7题。英文版63页 a) b) 令MAXPRIMES 4,t1不能检查出错误,t2发生数组越界,使得t2比t1更容易发现。 c)t3(n1) d)节点覆盖:TR{1,2,3,4,5&#xff0…

SQL2008使用json.net实现XML与JSON互转

借助CLR&#xff0c;首先实现字符串的互转&#xff0c;然后使用存储过程实现JSON2table public class JsonFunction { /// <summary> /// XML转JSON /// </summary> /// <param name"xml"></param> /// <returns></returns> ///…

黑胡桃木php,揭秘美国黑胡桃木的美

家具是艺术和文化的载体&#xff0c;人们对木的喜爱&#xff0c;是一种与生俱来的情怀。好的木材淳厚质朴、温润坚定&#xff0c;有着不动声色的力量。美国黑胡桃木(亦称黑核桃木)便是如此&#xff0c;“身体”中散发着让人无法抗拒的魅力&#xff01;美国黑胡桃木体现的是“深…

c mysql备份还原数据库,MySQL数据库备份与恢复方法

常有新手问我该怎么备份数据库&#xff0c;下面介绍3种备份数据库的方法&#xff1a;(1)备份数据库文件MySQL中的每一个数据库和数据表分别对应文件系统中的目录和其下的文件。在Linux下数据库文件的存放目录一般为/var/lib/mysql。在Windows下这个目录视MySQL的安装路径而定&a…

第四篇:白话tornado源码之褪去模板外衣的前戏

加班程序员最辛苦&#xff0c;来张图醒醒脑吧&#xff01; ... ... ... 好了&#xff0c;醒醒吧&#xff0c;回归现实看代码了&#xff01;&#xff01; 执行字符串表示的函数&#xff0c;并为该函数提供全局变量 本篇的内容从题目中就可以看出来&#xff0c;就是为之后剖析tor…

LFS(Linux From Scratch)学习

一、环境准备 使用Debian平台&#xff0c;需做如下环境检查&#xff1a; 1、检查各个需要的工具及内核版本号&#xff0c;看看是否符合lfs7.7的列表要求 2、检查需要用到的库&#xff0c;一共有三个&#xff0c;gmp, mpfr和mpc 工具检查脚本如下&#xff1a; #filename:check_e…

LaTeX 安装配置 OSX

LaTeX 安装配置 OSX官方网站&#xff1a;http://www.latex-project.orghttp://www.tug.org/mactex/http://pages.uoregon.edu/koch/BasicTeX.pdf完整的Tex超过2G&#xff0c;一般用户没必要&#xff0c;可以先安装BasicTeX&#xff0c;当有需要时include必要的库即可1.安装Basi…

告警系统邮件引擎

2019独角兽企业重金招聘Python工程师标准>>> 20.23-20.25 告警系统邮件引擎 创建发邮件的脚本——mail.py [rootlocalhost mail]# pwd /usr/local/sbin/mon/mail[rootlocalhost mail]# vim mail.py #!/usr/bin/env python #-*- coding: UTF-8 -*- import os,sys rel…

【HTTP 2】简介(Introduction)

前情提要 在上一篇文章《【HTTP 2.0】 序言》中&#xff0c;我们简要介绍了 HTTP 2 协议的概要和协议状态。 在本篇文章中&#xff0c;我们将会了解到 HTTP 2 协议简介&#xff08;Introduction&#xff09;部分的内容。 简介&#xff08;Introduction&#xff09; 超文本传输协…

SSD硬盘 全盘安全擦除

此文From http://ssd.zol.com.cn/575/5753057.html 在SSD固态硬盘的使用过程中&#xff0c;部分用户可能会碰到计算机意外掉电或死机并强行断电后&#xff0c;系统出现异常&#xff0c;扫描SSD后发现坏块&#xff0c;然后一着急一跺脚甚至想返厂维修。 其实掉电后固态硬盘出现坏…

2017敏捷沙滩大会:完美软件,测量持续交付,以及探索未来

在英国康沃尔郡举行的2017敏捷沙滩大会上&#xff0c;数百名演讲者和参与者共聚一堂&#xff0c;探讨敏捷和后敏捷领域软件开发方法有哪些最新进展。本次大会最后一个下午的要点包括&#xff1a;交付团队可以通过拥抱精益、迭代和持续的部署方法更快速地实现业务价值&#xff1…

做fzu oj 1045 做减法学到的sprintf()函数

题目 做题一直输不出答案&#xff0c;于是就上网去百度了这题的解题&#xff0c;发现解答十分的简短&#xff0c;而且其中我看见了平时没见过的函数&#xff0c;sprintf()。 于是就百度sprintf()的使用。 如下&#xff1a; 函数功能&#xff1a;把格式化的数据写入某个字符串 函…

动态内存分配及变量存储类别(第二部分)

5. C语言变量的存储类别和生存期 我们知道&#xff0c;变量是有数据类型的&#xff0c;用以说明它占用多大的内存空间&#xff0c;可以进行什么样的操作。除了数据类型&#xff0c;变量还有一个属性&#xff0c;称为“存储类别”。存储类别就是数据在内存中的存放区域。一个正在…

oracle的em能干什么,转载 解决Oracle的EM登录

转载 解决Oracle的EM登录(2011-03-13 20:53:39)标签&#xff1a;杂谈这几天解决了EM无法登录的问题&#xff0c;顺便也把j数据库程序中常出现的ORA_12518错误解决了&#xff0c;有必要总结一下&#xff0c;我最初遇到的情况是这样的&#xff1a;1. 编写java程序访问oracle数据库…

python 回溯法 子集树模板 系列 —— 1、8 皇后问题

问题 88格的国际象棋上摆放八个皇后&#xff0c;使其不能互相攻击&#xff0c;即任意两个皇后都不能处于同一行、同一列或同一斜线上&#xff0c;问有多少种摆法。 分析 为了简化问题&#xff0c;考虑到8个皇后不同行&#xff0c;则每一行放置一个皇后&#xff0c;每一行的皇后…

Android实用代码七段(五)

前言 每次分享意味着每次都有进步&#xff0c;本系列以实用为主&#xff0c;欢迎和我分享和推荐好用的代码段~~声明欢迎转载&#xff0c;但请保留文章原始出处:) 博客园&#xff1a;http://www.cnblogs.com农民伯伯&#xff1a; http://over140.cnblogs.com 正文 1、展开、收起…

ceph Luminous版手动安装零散记录

1.安装必要的依赖包&#xff0c;关防火墙&#xff0c;向/etc/hosts内添加域名等 2.安装ceph 配置yum源 (如果嫌慢&#xff0c;可以配置cachedir/home/yum/$basearch/$releasever和keepcache1两个参数&#xff0c;在第一次安装时将安装包下载到本地做成yum源&#xff0c;给后面的…

C#最简单最完整的webservice实例

我做java&#xff0c;但最近接触crm所以必须研究一下C#中的webservice以备后用&#xff0c;其实就是个新手&#xff0c;哈哈&#xff0c;这个实例是我在参考了网上诸多不完整的例子的情况下&#xff0c;自己摸索完成的。期间遇到过一系列的棘手的问题&#xff0c;经过个人努力终…

51 Nod 1007 正整数分组【类01背包】

1007 正整数分组 基准时间限制&#xff1a;1 秒 空间限制&#xff1a;131072 KB 分值: 10难度&#xff1a;2级算法题将一堆正整数分为2组&#xff0c;要求2组的和相差最小。例如&#xff1a;1 2 3 4 5&#xff0c;将1 2 4分为1组&#xff0c;3 5分为1组&#xff0c;两组和相差1…