前端优化感想以及[译]redux 教程 第一部分(共四部分
自己英语一般,水平有限,献上原文地址,还有我翻译的中文地址,欢迎大家勘误 下面是自己的一点感想先说一下webpack,我们知道,前端优化有这么几步, 第一步首先呢我们知道,一个应用要依赖好多条js文件,而浏览器加载完一条,要执行完这条才加载下一条,所以呢,就很慢,于是乎我们就得把它们合成一个, 第二步我们知道浏览器是有缓存的,那发布新版本的时候为了防止浏览器缓存,每次发新版本我们都得和上一版文件名不一样,所以我们用md5摘要算法将js文件生产摘要,作为js文件名的一部分 第三步可是我们又想利用浏览器缓存,减少请求,加快加载速度,我们发现我们经常改的是我应用的业务逻辑部分的js,而js的依赖几乎不该,而且js的依赖体积还不小呢。所以我们把js的所有的依赖放在一个文件(vendor.js)里,业务逻辑放一个文件(app.js)里,然后分别md5加密 第四步如果是是单页应用,而且又是一个比较庞大的应用,一上来就把所有的js 都加载了,,是不是很浪费,因为很多页面,我们都点不进去啊。所以能我们需要按需加载。只有访问要加载的页面时,我们才加载相关js 第五步还是单页应用,为了加快第一次加载的速度,我们想如果要是css也能按需加载就好了,我们为什么不用js动态按需加载css呢,干脆将css和js 写一起(我们该怎么写就怎么写,让webpack让他们在一起),加载js就把css 加载了,一条js请求就同时里面包含css。。这样css的请求也变少了,而且他俩可以一起用gzip压缩 第六步图标什么的很多很杂有不大,我们是不是为了减少 请求数将他们合在一起啊。。生成雪碧图。。对这还不够完美。要是能和js在一起就更好了。。咋做呢。。用base64 让他变成字符串。然后就能和js在一起了。这样的话还可以利用gizp压缩百分之75。不过前提是小图片或者小图标。。不然。。。图片太大的话还是。。 然后说一下react性能我觉得性能大数据量高交互的应用,同样是两个大牛,分别用react和angular,react会比angular性能好很多。注意我的前提哦,我用了一年半angular,最后还是被他的脏检查,伤痛了心,我们知道一个双向绑定就代表一个watch,就代表一串脏检查,当数据一大的时候。。唉。。。 最后是可维护型我先说一个结论单向数据流要比mvc强好多, 啰嗦这么多开始教程 教程 0 -介绍为什么会有这个教程呢?当我试着学redux的时候,我意识到通过依赖读过的文章和个人经验学习到的有关flux的知识,存在很多错误的地方我不是说那些关于flux的文章不好只是我没有正确掌握这些概念。 _________ ____________ ___________ | | | | | | | Action |------------?| Dispatcher |------------?| callbacks | |_________| |____________| |___________| ▲ | | | | | _________ ____|_____ ____▼____ | |?----| Action | | | | Web API | | Creators | | Store | |_________|----?|__________| |_________| ▲ | | | ____|________ ____________ ____▼____ | User | | React | | Change | | interactions |?--------| Views |?-------------| events | |______________| |___________| |_________| 在这个教程我们会逐步介绍给你以上图表中的概念.我们会分别尝试理解每一模块存在的理由和扮演着一种什么样的角色, 但是在开始之前,让我们先聊聊为啥flux会存在,又为啥我们需要它捏?假设我们正在开发一个web应用, 那么它是由啥构成的呢? 这是我们所熟悉的非常经典的mvc模式.想必你心中也有这样的疑惑,如果在表达上稍作修改,其实mvc模式也很想flux的概念
所以说,难道flux就仅仅是单词而已吗? 不是这样的.但是这个单词至关重要, 为了清楚的理解mvc和flux的不同我们将在mvc应用中写一个经典的用例 在这种环境下想要快速找到bug的源头,那将是一个巨大挑战啊. 然后 当 用flux以及它的单向数据流架构,上面的例子就变成这个样子了 所以知道我们如何防止Store A 和 Store B产生直接联系了吧 ?每一个store的修改只能通过action, action -> store -> view -> action -> store -> view -> action -> ... 就像我们的用例是从action开始一样,让我们的教程也从action和创建一个action开始吧 未完待继续翻译 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |