20180422 前端开发周报

写一个简单Vue 中间件,$emit、$on;Step-by-step,打造属于自己的vue ssr;小哥哥,小姐姐,我有一份tcp、http面试指南你要吗?;vue多页面开发和打包的正确姿势;JavaScript 如何工作:渲染引擎和性能优化技巧;Vue 2.0学习笔记:Vue.extend构造器的延伸;Vue前端开发规范;看看webpack都打出了些什么

  1. 1、写一个简单vue 中间件,$emit、$on

    使用过vue的同学大多数都知道 on的使用。我们仅仅知道使用,有时候是完全不够的。现在我就带领大家写一个简单类似于vue空实例的中间件。 非父子组件的通信 非父子组件的通信vue官网给出这样的解决方案。 有时候,非父子关系的两个组件之间也需要通信。在简单的场景下,可以使用一个空的 Vue 实例作为事件总线: v...

  2. 2、Step-by-step,打造属于自己的vue ssr

    笔者最近在和小伙伴对vue项目进行ssr的升级,本文笔者将根据一个简单拿vue cli构建的客户端渲染的demo一步一步的教大家打造自己的ssr,拙见勿喷哈。 what ? why ? What ? 在学习一项新技术的时候我们首先要了解一下他是什么。这里引用官网的一句话: Vue.js 是构建客户端应用程序的框架。默认情况下,可以在浏...

  3. 3、小哥哥,小姐姐,我有一份tcp、http面试指南你要吗?

    来来来 对,我就是骗你进来的。嘿嘿嘿... 既然来了就看看再走嘛 作为一个学通信出身的前端,说道http、tcp什么的,算是到了我的领域了。(我会告诉你我上课净睡觉了,啥也没学到吗?)这次给大家讲讲http,提高水平、丰富知识。(要不是为了面试,谁会管什么tt

  4. 4、vue多页面开发和打包的正确姿势

    看完本文大概需要十分钟,动手尝试需要一小时 前段时间做项目,技术栈是vue+webpack,主要就是官网首页加后台管理系统 根据当时情况,分析出三种方案 一个项目代码里面嵌两个spa应用(官网和后台系统) 分开两套项目源码 一套项目源码里面就一个spa应用 思考: 直接否定了一套项目源码里一个spa应...

  5. 5、JavaScript 如何工作:渲染引擎和性能优化技巧

    原文地址:How JavaScript works: the rendering engine and tips to optimize its performance 原文作者:Alexander Zlatkov 译文出自:掘金翻译计划 本文永久链接:git

  6. 6、Vue 2.0学习笔记:Vue.extend构造器的延伸

    前段时间花了不少的时间在学习和了解Vue的组件,虽然中间浅尝了Vue组件的基础,体验了其魅力,但还是有很多深层的东西未掌握,也还不能非常灵活的使用Vue的组件。但这一切并不重要,随着后面的学习,我想会对Vue越来越熟悉。这两天在看Vue中的 Vue.extend 构造器,今天简单的对这方面的东西做个笔记。 什么是Vue.exte...

  7. 7、Vue前端开发规范

    基于Vue官方风格指南整理 一、强制 1. 组件名为多个单词 组件名应该始终是多个单词的,根组件 App 除外。 正例: export default { name: 'TodoItem', // ... } 反例: export default

  8. 8、看看webpack都打出了些什么

    最近在看webpack的原理,觉得可以分为两个方面来完成: 了解webpack打包出来的文件。 了解webpack流程并且自己写loader和plugin。 当然看源码是可以的,但是有点事倍功半并且没有必要,个人觉得完成以上两部分就可以对webpack有不错的了解了。本文主要关于webpack打包出来的文件的内容希望能够提出不...

  9. 9、Node.js 包结构和小而美的哲学

    写这篇文章的原因是,jjc的驳《我不是很懂 Node.js 社区的 DRY 文化》,我对这篇文章还是比较认可的,做一个小小的补充。 Node出现之前,JavaScript是缺少包结构的。CommonJS致力于改变这种现状,于是定义了包的结构规范(Packages/1.0 - CommonJS Spec Wiki )。而NPM的出现则是为了在CommonJS规范的基础上,实现...

  10. 10、使用node爬虫做了一个vue小项目记录使用笔记

    vue-backend-system github地址 一直想把以前所学的相关知识进行总结归纳,方便以后查看复习,正好最近最近抽时间研究点东西,打算是做前后台的,对后台这块不熟悉,本来是打算用node加mongodb实现,数据自己弄的不是很清楚,就干脆爬下自

  11. 11、webpack 换肤功能多主题/配色样式打包解决方案

    本文主要详细介绍了,如何使用 webpack ,打包多套不同主题的解决方案以及实践中所遇到的问题及解决方案。 起因 首先,简单的介绍一下什么是多主题,所谓多套主题/配色,就是我们很常见的换肤功能。换肤简单来说就是更换 css 。这是一个老生常谈的问题,具体实践请参考less换肤功能实践。本文不在赘述。 一般...

  12. 12、你真的了解JS数组的那些方法吗?

    数组的创建有三种方式:构造函数方式、字面量方式、ES6新增的Array.of()方法创建。 构造函数方式: let arr = new Array(); // 创建一个空数组 let arr = new Array(10); // 创建长度为10的数组 let arr = new Array('a'); // 创建包含一个字符串元素a的数组 let arr = new Array(10, 'a'); // 创建...

  13. 13、VuePress手把手一小時快速踩坑

    簡介 官方文檔 快速部署生成靜態網站,便於書寫blog或記錄文件,這個需求始終沒有減少過。因此github上也有許多配套方案,便於建立這類型的靜態網站,例如hexo或Gatsby。透過這個靜態網站排名可以一窺當前stars排名靠前的各種方案。 上週Vue的作者

  14. 14、2018年,现代的前端开发者应该学习哪些东西?

    在文章开始之前,先简单的介绍一下我自己以及文中所提及的学习大纲。过去的5年里,我一直在做全栈开发,现担任tajawal的总工程师。因工作需要,我必须身兼多职。这不仅是我的爱好,也是我的工作职责之一。因此我可以密切地关注这一行业的发展趋势,并确保其他工程师也能紧跟趋势。在紧跟趋势这一问题上,我发现无论是初...

  15. 15、如何解释vue的生命周期才能令面试官满意?

    当面试官问:“谈谈你对vue的生命周期的理解”,听到这句话你是不是心里暗自窃喜:这也太容易了吧,不就是beforeCreate、created、beforeMount、mounted、beforeUpdate、updated、beforeDestroy、des

  16. 16、ES6 javascript 实用开发技巧

    定义变量/常量 ES6 中新增加了 let 和 const 两个命令,let 用于定义变量,const 用于定义常量 两个命令与原有的 var 命令所不同的地方在于,let, const 都是块级作用域,其有效范围仅在代码块中,实例如下: //es5 if(1==1){ var b = 'foo'; } console.log(b);//foo //es6 if(1==1){ let b = 'foo'...

  17. 17、致程序员:别无谓焦虑,快学习现代 JavaScript 生态体系

    原标题:致程序员:别无谓焦虑,快学习现代 JavaScript 生态体系 编者按:JavaScript 是前端开发的统治性语言。但是这门语言的多变和生态体系之复杂让人又爱又恨,哪怕是接触了很久的人。作为开发者指南的撰写者,Flavio Copes 告诉 你对待JavaScript的正确态度应该是什么样的。 直到一个月前我甚至还没法克...

  18. 18、一个简单易用的webpack4多页面脚手架配置加学习

    wepack4搭建多页面脚手架学习 本文代码地址在github 前言:以前刚接触webpack的时候还是1,当时大概过了下文档操作了一下当时写的一些注释。后来开发的时候基本写react都是用的create-react-app或者找别人的搭好的脚手架用。所以趁着

  19. 19、Vue开发库存管理前端页面时一些小经验记录

    场景是在项目中很多地方都需要用到相同的函数,例如 this.$message({ type: 'success', message: '提示语' }) 如果出现次数过多,会造成书写麻烦和代码复杂的情况。 解决思路:首先对函数进行抽象封装,封装后利用vue的mixin将其注入到各个vue中。 因为这里的函数是大部分组件中都可能用到的,固利用vue的全...

  20. 20、ES6 中的一些技巧,使你的代码更清晰、更简短、更易读

    原文地址:https://medium.freecodecamp.org/make-your-code-cleaner-shorter-and-easier-to-read-es6-tips-and-tricks-afd4ce25977c 更多内容请见译者 Blog:https://github.com/elevenbeans/elevenbeans.github.io 模版字符串 模板模版字符串使得字符串拼接比以前更容易。 它以反向标记(Ta...

  21. 21、整理了js数组去重4种方法

    1.利用es6的iterable数据结构set 原理: ES6 提供了新的数据结构 Set。它类似于数组,但是 成员的值都是唯一的,没有重复的值。 利用的算法类似'===',与'==='的区别是 ‘===’认为NaN != NaN ,set的算法认为它们是相等的,但是set认为对象都是不相等的。 Set 本身是一个构造函数,用来生成 Set 数据结构。...

  22. 22、如何生成WebP图片

    什么是Webp图片 WebP是一种新的图片格式,目标是减少文件大小但达到和JPEG格式相同的图片质量,能够减少网络上的请求时间。 优势与劣势 WebP优势 WebP相比于JPG拥有更小的文件尺寸、更高的质量(相比于相同大小不同格式的压缩图片),抽取100张商品

  23. 23、轻松掌握移动端web开发尺寸适配常用解决方案

    本文主要针对初学移动端web开发的读者,笔者也是初学者,文中有众多用词不当之处望读者指正。 前言 从开始做web app开发到现在,一直对移动端的尺寸适配有一种模糊的概念。能说得上来‘媒体查询’,‘栅格化布局’,‘流式布局’等若干技术名词和实现方式,但是每次自

  24. 24、JS高级之面试必须知道的几个点

    这段时间突然发现JS原生好多东西都忘记了,但有些东西确实很重要,所以又重新再梳理一次。主要有函数的3种定义方法,ES5函数this指向,call与appl用法,JS常见的4种设计模式,原型链,原型链和继承的方式(ES5和ES6) 全文=> ​​​ 前言 这段时间突然发现JS原生好多东西都忘记了,但有些东西确实很重要,所以又重新再梳理一次。主要有函数的3种定义方法,ES5函数this指向,call与appl用法,JS常见的4种设计模式,原型链,原型链和继承的方式(ES5和ES6) 1.函数的3种定义方法 1.1 函数声明 //ES5 function getSum(){} function (){}//...

  25. 25、使用JavaScript中undefined小技巧

    特别声明:此篇文章内容来源于 @Cynthia 的《 7个处理javascript的 undefined 的Tips 》一文。 在8年前,我刚开始学习JavaScript时,让我觉得有点奇怪的是, undefined 和 null 同样代表空值。它们之间是否有明确的不同?它们看起来都定义为“空”,此外,比较 null== undefined 的结果是 true 。 大多数的现代...

  26. 26、七行JSON代码将你的网站变成移动应用

    本文介绍了借助 Jasonette 将 Web 视图和原生组件融合构建真正“混合”应用的做法。 如果我告诉你,只需要 上述 7 行橙色的 JSON 代码 就可以将一个网站变成移动应用,你相信吗?完全不需要使用某种框架 API 重写网站,就可以获得与移动应用相

  27. 27、CSS如何实现内凹角效果

    如题:CSS 如何实现内凹角的效果?

  28. 28、Git 12 岁了,为你送上 12 个 Git 的使用技巧

    !》为了纪念Git的12岁生日,这篇文章提供12个诀窍与技巧来让你的Git经验更加有用和强大,从一些你可能会忽视的基础开始到一些真正的强大技巧! (by 开源中国) ​​​

    Git 12 岁了,为你送上 12 个 Git 的使用技巧
  29. 29、前端性能优化之浏览器渲染优化 —— 打造60FPS页面

    前言 本文整理自:developers.google.cn 及 高性能JavaScript,再加上了一些个人对其中提到的知识点的理解与补充。前端性能优化涉及很多方面,本文仅针对高性能渲染进行分析。 单个帧的渲染流程 —— 像素管道 目前,大多数设备的刷新率都是

  30. 30、我的美团前端校招面试了解一下 | 掘金技术征文

    首先介绍一下本人:18年应届生,普通二本,学习能力一般,技术能力更是一般,前端小白,但是在努力学习中。 从17年秋招开始我便向美团投了简历,也参加了在线笔试,但是输的很惨淡,笔试没过后,来继续在武汉找了家小公司实习。春招开启之际,我尝试过投了斗鱼(没有获得面

  31. 31、简易实用的JavaScript日期时间操作

    在这里推荐一款简易实用的JavaScript日期时间处理工具: easedate.js 。 easedate.js 在原生Date对象的基础上,提供了日期输出的格式化,以及日期时间的加减计算、时差计算、条件判断、链式操作等功能,方便项目中的日期时间进行相关处理! 欢迎访问 github.com/springlong/… 使用easydate N...

  32. 32、理解JavaScript中null、undefined和NaN

    特别声明:此篇文章内容来源于 @Kuba Michalski 的《 Understanding null, undefined and NaN 》一文。 当您开始学习JavaScript时,首先需要学习的是数据类型。只要我们讨论 Number 、 String 、 Boolean 和 Object 时,一旦涉及到 null 和 undefined 出现时,作为初学者要理解清楚他们就可能会有点混乱。 如果...

  33. 33、从 setTimeout/setInterval 看 JS 线程

    最近项目中遇到了一个场景,其实很常见,就是定时获取接口刷新数据。那么问题来了,假设我设置的定时时间为1s,而数据接口返回大于1s,应该用同步阻塞还是异步?我们先整理下js中定时器的相关知识,再来看这个问题。 初识setTimeout 与 setInterval 先来简单认识,后面我们试试用setTimeout 实现 set...

  34. 前端布局推进剂 - 间距规范化 我是一个爱折腾设计的前端,一直都在标榜自己的页面还原是多么的牛 X 。怎么做到页面还原?我有一个最笨但是有效的方法,就是把设计稿直接存成图片,作为背景图然后临摹着设计稿进行开发。我觉得自己太有才了。像素级还原有没有?▲ 为看清效果有做两像素偏移但是 Too Y
  35. 35、前端性能相关:防抖、节流

    浏览器的 resize、scroll、keypress、mousemove 等事件在触发时,会不断地调用绑定在事件上的回调函数,极大地浪费资源,降低前端性能。为了优化体验,需要对这类事件进行调用次数的限制。 防抖(debounce) 作用是在短

  36. 37、原生JS 操作 DOM

    前端开发始终绕不过的就是操作DOM,在以前,我们使用Jquery,zepto等库来操作DOM,之后在vue,Angular,React等框架出现后,我们通过操作数据来控制DOM(绝大多数时候),越来越少的去直接操作DOM,更不用说用原生的JS来操作DOM了。 但是并不是所有时候都一定要引入这些库,对于基础的JS操作DOM的一些方法,还是要有些...

  37. JavaScript:处理值为'undefined'的7个技巧 我刚刚开始学习JavaScript时,大约是八年前,当时我对于undefined 和 null 比较困惑 ,因为他们都表示空值。他们有什么明确的区别吗?他们似乎都可以定义一个空值,而且 当你进行 在做null ===undefined 的比较时,结果是true
  38. 39、你应该知道的Node.js子进程

    文章翻译自 Node.js Child Processes: Everything you need to know 如何使用spawn函数、exec函数、execFile函数和for函数 Node.js中的非阻塞单线程的特性对单进程任务是非常有用。但是事实上,面对日益复杂的业务逻辑,单个cpu中的单进程所能提供的计算力显然是不足的。因为无论服务器如何强大,单线程...

  39. 40、深入深入再深入 js 深拷贝对象

    前言 对象是 JS 中基本类型之一,而且和原型链、数组等知识息息相关。不管是面试中,还是实际开发中我们都会碰见深拷贝对象的问题。 顾名思义,深拷贝就是完完整整的将一个对象从内存中拷贝一份出来。所以无论用什么办法,必然绕不开开辟一块新的内存空间。 通常有下面两种

  40. 41、JavaScript 类型判断知多少

    JavaScript类型判断是个蛋疼的问题,这可以说是语言本身的缺陷造成的,但是没办法,除非你不用JavaScript,否则该判断的还是要判断,本文还是JavaScript30秒的续集...

  41. 42、WebSocket 是什么原理?为什么可以实现持久连接?

    额。。最高票答案没答到点子上,最后怎么跑到Nodejs上去了。。Websocket只是协议而已。。我一个个来回答吧 一、WebSocket是HTML5出的东西(协议),也就是说HTTP协议没有变化,或者说没关系,但HTTP是不支持持久连接的(长连接,循环连接的

  42. 43、面向Vue新人:写一个简单的倒计时按钮

    在项目开发里,我们经常会遇到发送验证码、点击了之后有60秒倒计时的按钮,很常见却也很简单,但是在写这个按钮的时候有个别地方还要注意下,今天写出来,如有问题欢迎指正! 完成的效果如下: 为了更快显示出效果,我把时间设成了5秒。按钮在点击之后会出现倒计时,同时

  43. 44、探寻 webpack 插件机制

    webpack 可谓是让人欣喜又让人忧,功能强大但需要一定的学习成本。在探寻 webpack 插件机制前,首先需要了解一件有意思的事情,webpack 插件机制是整个 webpack 工具的骨架,而 webpack 本身也是利用这套插件机制...

  44. 45、vue实践之vuex

    vue实践05之vuex getter方法 有时候我们需要从 store 中的 state 中派生出一些状态,例如对列表进行过滤并计数: computed: { doneTodosCount () { return this.$store.stat

  45. 47、基于vue的在线聊天软件

    基于浏览器端的web实时聊天工具,后台用的java Document 中文 English 功能列表 1.登录注册 2.添加好友&删除好友

  46. 48、从Promise到Event Loop(二)

    在上一章我们提出了一个promise和setTimeout回调执行顺序的疑问,并且一起研究了promise-polyfill的源码实现。然而,最初的问题还是没有得到解答,同时引出了更多的关于异步时序的思考,为了真正解决这个问题,我们必须深入理解一些js实现底层

  47. 49、关于Cookie、session和Web Storage

    一边学习前端,一边通过博客的形式自己总结一些东西,当然也希望帮助一些和我一样开始学前端的小伙伴。 如果出现错误,请在评论中指出,我也好自己纠正自己的错误 author: thomaszhou cookie和session的区别 cookie数据

  48. 50、VsCode中使用Emmet神器快速编写HTML代码

    VsCode中使用Emmet神器快速编写HTML代码  出 处:http://www.cnblogs.com/summit7ca/  转载: http://www.cnblogs.com/summit7ca/p/6944215.

  49. 51、从零开始搭建前端脚手架

    Vue.js 是目前比较流行的前端框架之一,那么开发一个基于 Vue.js 的组件是每个前端的心愿。在每次开发新的 Vue.js 组件的时候,都会做的事情有下面几项: 创建项目目录 git 初始化 npm 初始化 搭建开发环境

喜欢这篇文章的朋友,欢迎收藏、分享、评论,帮我上热门,你的支持,是我每日更新的动力!

喜欢前端的朋友可以点击关注一下我微博,每日分享精彩的前端文章!

原文:20180422 前端开发周报 ,未经许可,禁止转载。
来源:前端开发博客 (http://caibaojian.com/fe-weekly-20180422.html)