20190422 前端开发周报

我为什么选择 Vue 而不是 React?;前端面试必杀技:原型、原型链以及继承(一张图搞定面试);都 9012了,该选择 Angular、React,还是Vue?;高仿网易云音乐 Vue前端项目;jQuery+CSS3搞一个动画简历;使用TypeScript两年后-值得吗?;封装Vue组件的一些技巧;“寒冬中”三年前端社招面试经验

  1. 我为什么选择 Vue 而不是 React? 在前端三大框架的日趋成熟的今天,React 和 Vue 的“用户口碑”已经远远超过 Angular。在这篇文章中,我会解释:在这些框架中,我为什么会偏爱 Vue?在这过程中,我会尽力用客观的立场表达这些观点。 列表元素 | List Elements 在 Web app 中,最常见的元素就是用后端给到的数组渲染出一个列表。让我们看看这在 Vue 和…
  2. 前端面试必杀技:原型、原型链以及继承(一张图搞定面试) 什么是对象 多个数据(属性)的集合; 用来保存多个数据(属性)的容器; 属性组成 属性名:字符串(标识); 属性值:任意类型; 属性的分类: 一般:属性值不是function,描述对象的状态; 方法:属性值为function的属性,描述对象的行为; …
  3. 都 9012了,该选择 Angular、React,还是Vue? 转载请注明出处: 葡萄城官网 ,葡萄城为开发者提供专业的开发工具、解决方案和服务,赋能开发者。 尽管 Web开发的典型应用场景除了将服务器用作平台、浏览器用作客户端之外,几乎很少活跃于其他业务领域,但不可否认JavaScript 语言和框架的使用已经成为了主流。Angular、React 和 Vue,作为 JavaScript 的三…
  4. 高仿网易云音乐 Vue前端项目 歌曲播放界面支持播放进度同步、收藏或取消收藏当前歌曲 banner、排行榜左边的三个按钮点击没有效果( ´▽`) ,没时间写那些啦… 实现了登录功能 登录后展示头像和昵称,且可进入个人中心即“我的”页面,可查看…
  5. jQuery+CSS3搞一个动画简历 在线预览(移动端慎入) github 又到了一年一度躁动不安的季节,跳槽升职加薪当然需要一份很nice的简历啦,作为一位在本圈刚出道的前端小白,当然需要一份很nice的简历啦! 图片展示 设计粗糙,原谅一个理科生(理科都还没学好)的审美 介绍页 技能清单页 经历页 作品…
  6. 使用TypeScript两年后-值得吗?这是我的第一篇翻译文章,想看这篇文章的时候,发现没有中文翻译版,无奈去读了英文版,读完发现可以试试翻译出来。
  7. 封装Vue组件的一些技巧 本文同步在个人博客shymean.com上,欢迎关注 写Vue有很长一段时间了,除了常规的业务开发之外,也应该思考和反思一下封装组件的正确方式。以弹窗组件为例,一种实现是在需要模板中引入需要弹窗展示的组件,然后通过一个flag变量来控制弹窗的组件,在业务代码里面会充斥着冗余的弹窗组件逻辑,十分不优雅。 本文整…
  8. “寒冬中”三年前端社招面试经验 前言:16 年毕业的渣本程序员,毕业后一直在上海某云工作,小组氛围以及同事都非常 nice,但是业务线发展不好,年后回来后被砍了,不想内部转岗到其他部门,所以加入了找工作的大潮。这次的找工作经历对我来说很重要,它让我在准备的过程中突然对很多技术问题有所觉悟,想记录一下这次的经验。 基本都是在 Boss 直聘加…
  9. 面试官:你使用webpack时手写过loader,分离过模块吗? 前言 大家好,之前出了一篇面试篇webpack入门,这篇文章继续介绍接下来更深入东西。 概览 如何载入自己的loader 使用loader-utils,schema-utils 编写自己的loader 扩展 如何载入自己的loader 讲道理大家都是直接import一个loader或者使用webpack内置的loader的。 如果调试自己的loader,应…
  10. 前端代码质量管理(一) 相信编码规范对于大家来说不算是陌生,如果在 9102 年再次聊起这个话题,恐怕耳朵会起茧,但编码规范从制定到落地是一个艰难的旅程,特别是对于不同成员的编码习惯,还有棘手的祖传代码。无论你是老司机还是新手不妨了解一下。 如何制定编码规范?这是一个永恒的话题,甚至出现过开发者按照自己的习惯和想法不停的去修…
  11. 手写JavaScript常用的函数 一、bind、call、apply函数的实现 改变函数的执行上下文中的this指向,但不执行该函数(位于Function构造函数的原型对象上的方法) Function.prototype.myBind = function (target) { if (typeof this !== ‘function’) { throw Error(‘myBind is not a function’) } var that = this var args…
  12. 深入理解javascript事件机制 Created By JishuBao on 2019-04-17 12:38:22 Recently revised in 2019-04-17 17:38:22 欢迎大家来到技术宝的掘金世界,您的star是我写文章最大的动力! GitHub地址 不知道各位小伙伴在平时撸码中会不会经常看到诸如 event.preventDefault()、event.stopPropagation() …
  13. (JS基础)操作表单 <form> 元素对应的时 HTMLFormElement 类型,继承自 HTMLElement ,因而拥有与 HTMLElement 相同的默认属性。 <form> 元素内部还需要"内容",而填充"内容"的元素有 <input> 、 <button> 、 <textarea> 、 <select> 、 <option&g…
  14. Vue中级指南-01 如何在Vue项目中导出Excel 由于 Export2Excel不仅依赖js-xlsx还依赖file-saver和script-loader。 所以你先需要安装如下命令: npm install xlsx file-saver -S npm install script-loader -S -D 复制代码 由于js-xlsx体积还是很大的,导出功能也不是一个非常常用的功能,所以使用的时候建议使用懒加载。使用方法如下: import(‘@/vendor/E…
  15. [深入探索] VueJS Scoped CSS 实现原理 使用VueJS进行应用开发, 脱离不了对应用间的模块进行拆分, 将大块界面拆解为组件的过程. 我们可以很方便的在单文件中使用 <template> 块维护组件的视图, 使用 <script> 维护组件的逻辑部分, 使用 <style> 维护组件的样式. 在我们编写 VueJS 组件样式时, 不得忽略的一点就是样式污染. 样式污染产生…
  16. 《前端面试手记》之ES6重难点整理 内容速览 let和const Set和Map Generator和yield Promise、async/await介绍 Proxy代理器 … 查看全部教程 / 阅读原文 let和const ES6新增了let和const,它们声明的变量,都处于“块级作用域”。并且不存在“…
  17. 11 个提升网页设计和前端开发技能的趣味游戏 自学网页设计与前端开发的途径很多,有人喜欢观看视频课程学习,有人则习惯阅读书籍和文章掌握相应的知识点。当然,玩学习类趣味游戏也是测试与提升技能的有效途径之一。 今天我们将分享 11 个有趣的在线小游戏,通过游戏化场景提升你的网页设计与前端开发技能。寓教于乐,其乐无穷。如果你正在学习相关知识,不妨…
  18. 2019 前端工具调研 和往年一样,本年度调研的目的也很简单。是为了了解整个行业中,常见前端工具现有的知识和使用水平。 所以在 2019 年,哪些工具位居榜首呢? :arrow_right: 现在我们开始本年度调研 我非常感谢你能抽出时间来参与。每一份回答都能为前端社区提供一份更有代表性的样本。 去年调研结果概述 去年,5461 名前端研…
  19. 前端异步解决方案-3(Promise)又有好些天没有动笔了,这几天一直在断断续续的学习Promise和generator,今天终于能够把着两个玩意结合起来了解决异步问题了。今天我先把promise相关的用法和对异步的处理分享给大家。老样子,还是先模拟一个Prom…
  20. Vue中的scoped及穿透方法 css一直有个令人困扰的作用域问题:即使是模块化编程下,在对应的模块的js中import css进来,这个css仍然是全局的。为了避免css样式之间的污染,vue中引入了scoped这个概念。 在vue文件中的style标签上,有一个特殊的属性:scoped。当一个style标签拥有scoped属性时,它的CSS样式就只能作用于当前的组件。通过设置该属…
  21. JS闭包:For循环中的setTimeout 译者:嘴里起了个泡 原文地址: wsvincent.com/javascript-… 这篇文章详细介绍了JS在执行for循环里面的 setTimeout() 语句的时候发什么了什么。这是面试中经常会被问到的一个问题,因为这个问题的答案涉及到了几个JS的核心知识点:闭包(closures), 提升(hoisting) 和 事件循环(the event loop) 。 For…
  22. 11个教程中不常被提及的JavaScript小技巧这次我们主要来分享11个在日常教程中不常被提及的JavaScript小技巧,他们往往在我们的日常工作中经常出现,但是我们又很容易忽略。
  23. 原生JS知识点整理 1. 基本类型有哪几种?null 是对象吗?基本数据类型和复杂数据类型存储有什么区别? 基本类型有6种,分别是undefined,null,bool,string,number,symbol(ES6新增)。 虽然 typeof null 返回的值是 object,但是null不是对象,而是基本数据类型的一种。 基本数据类型存储在栈内存,存储的是值。 复杂数据类型…
  24. Vue学习笔记(一)——脚手架vue cli cli(@vue/cli) cli服务(@vue/cli-service) cli插件 CLI ( @vue/cli ) 是一个全局安装的 npm 包,提供了终端里的 vue 命令,这些命令都是在全局安装之后才可以使用的,例如:使用 vue serve 启动项目需要在npm install -g @vue/cli-service-global之后才可以。 vue create 创建一个vue项目 vue…
  25. 浏览器事件循环(结合vue nextTicket) 同步:就是在执行栈中(主线程)执行的代码 异步:就是在异步队列(macroTask、microTask)中的代码 简单理解区别就是:异步是需要延迟执行的代码 线程和进程 进程:进程是应用程序的执行实例,每一个进程都是由私有的虚拟地址空间、代码、数据和其它系统资源所组成;进程在运行过程中能够申请创建和使…
  26. JS事件循环机制初探 js的事件循环机制,在我理解起来就是执行上下文,对函数的出栈和入栈的一个过程。都知道js的一大特点是单线程,这也是这个语言的核心特征。试想一下,如果js是个多线程的语言,同时存在两个线程,一个线程是在某个Dom上添加节点,而另一个线程却是删除节点,这个时候浏览器就会产生错乱,而我们关心的js事件循环机制,正…
  27. Vue源码该如何入手? 这是一个对 Vue.js 源码解析的系列,会持续更新,欢迎关注;话不多说,下面我们就从怎么读 Vue.js 源码开始。 一. 源码目录 首先我们先看看 Vue.js 源码的项目结构: Vue.js源码GitHub 我们先了解一下 src 这个目录的各模块分工: src ├── compiler # 编译相关 ├── core …
  28. 2019前端工程师自检清单与思考对于JavaScript,掌握其语法和特性是最基本的,但是这些只是应用能力,最终仍旧考量仍然是计算机体系的理论知识,所以数据结构,算法,软件工程,设计模式等基础知识对前端工程师同样重要,这些知识的理解程度,…
  29. vue的数据劫持以及操作数组的坑 vue是构建用户界面的渐进式框架。所谓的渐进式: vue + components + vue-router + vuex + vue-cli 可以根据需要选择相应的功能。 来串命令 mkdir vue-apply;cd vue-apply;npm init -y;npm i vue 。 来一个html文件如下,浏览器瞄下~,浏览器控制台 vm.msg=0 再看下 <div id="app"&…
  30. 【周刊-2】三年大厂面试官-前端面试题披露(偏难)在阿里和腾讯工作了6年,当了3年的前端面试官,把阿里和腾讯常问的面试题与答案汇总在我的Github中。希望对大家有所帮助,助力大家进入自己理想的企业。
  31. 理解JavaScript的核心知识点:This this 是 JavaScript 中非常重要且使用最广的一个关键字,它的值指向了一个对象的引用。这个引用的结果非常容易引起开发者的误判,所以必须对这个关键字刨根问底。 执行上下文:Execution Context 在深入了解 this 对象之前先介绍另一个概念:执行上下文。 没错,执行上下文与 this 在本质上是两个…
  32. 一篇文章读懂HTTPS及其背后的加密原理】HTTPS(全称: Hypertext Transfer Protocol Secure,超文本传输安全协议),是以安全为目标的HTTP通道,简单讲是HTTP的安全版。本文,就来深入介绍下其原理。详见 (来自:Hollis)

    一篇文章读懂HTTPS及其背后的加密原理
  33. 前端面试必问题答疑(1)一,前端性能优化有哪些? {代码…} {代码…} 二,关于原型链
  34. Vue 折腾记 – (17) 基于Ant Design Vue 封装一个配置式的表单组件 实现思路和功能 基础的功能直接配置上来渲染,而上传组件就不大合适了; 所以选择了 slot 来实现,如何保证传入的 form-item 的布局一致,则是拿 slot-scope 我这边选型用的是 vue 2.6 + 的版本,所以直接用的是最新的写法 而且作为表单组件,校验这些肯定需要考虑,所以数据的构造改造了下, 对于校验规…
  35. Vue 组件间通信方法汇总除了使用 Vuex 方法外,vue 提供了各种各样的组件间通信的方案。文章整理一下父子组件、兄弟组件、祖先后代组件间是如何通信的。
  36. 理理Vue细节 <!– 属性name –> <a : ="url"> … </a> <!– 计算属性sss和s –> <img : ="/img/test.png"/> <!– 方法change1和change2 –> <img : ="change2()"/> data: { name: ‘href’, sss: ‘src’ } 复制代码 注意:…
  37. #前端技术#【前端开发手册 2019】详见: 一本任何人都可以了解前端开发的实践指南。它将系统的概述前端工程实践,帮助你了解前端开发,以及在 2019 年需要使用哪些开发工具。

    前端开发手册 2019
  38. JavaScript中创建对象的几种方式 一般情况下,JS中创建对象的方式可以用构造函数Object或者对象字面量的方式,但需要创建几个具有相同属性或方法的对象时,就得写大量的冗余代码。故而出现了下述几种创建对象的方法。 一、工厂模式 工厂模式是一种常见的设计模式。这种模式把对象的创建过程抽象出来并封装成一个函数。需要使用同类型的对象时,可以…
  39. JavaScript对象详细讲解 学习面向对象时我们常说“万物皆对象”,当然在JavaScript中也不例外。不夸张地说:没有理解对象,就无法理解JavaScript。本文将向你展现对象的详细内容,希望对你有帮助。 1. 对象的定义 1.1 “万物皆对象”一探究竟 1.1.1 都是对象 布尔类型通过new Boolean()创建时是对象 数字类…
  40. 前端面试基础知识整理(持续更新)w3c盒模型:content + padding + border + margin。元素宽高(css)等于content的宽高。
  41. 从基础到实战 手摸手带你掌握新版Webpack4.0详解 知识点概览: Loader,HMR ,Create React App, Caching, Plugin, SourceMap,Vue Cli 3.0 ,Shimming, WebpackDevServer,TreeShaking, CodeSplitting, Babel, React , Library, Eslint ,PWA, Vue, Mode,性能优化,多页应用,原理, PreLoading, PreFetching ,环境变量,TypeScript 收获: 彻底学会Webpack的配置 理解 We…
  42. LeetCode 之 JavaScript 解答第150题 —— 逆波兰表达式求值 Time:2019/4/14 Title: Evaluate Reverse Polish Notation Difficulty: Medium Author:小鹿 题目:Evaluate Reverse Polish Notation Evaluate the value of an arithmetic expression in Reverse Polish Notation . Valid operators are + , – , * , / . Each operand may be …
  43. 响应式前端框架 1. 响应式前端框架 (#1-响应式前端框架) * (#11-什么是响应式开发) * (#111-concept) * (#12-不同的框架中) * (#13-更新过程) * (#131-angularjs-脏检查) * [1.3.2. react (…
  44. 【入门指南】node.js node.js不是一种独立语言,是一个可以让js在服务器端运行的平台 区别与传统语言平台依靠多线程来实现高并发的设计思路,node采用单线程、异步式I/O、事件驱动式的程序设计模型 node.js使用的JavaScript引擎为V8引擎,还使用了高效的 libev 和 libeio 库支持事件驱动和异步式 I/O 来代替传统平台的多线程模式,带…
  45. Next.js 入门当使用 React 开发系统的时候,常常需要配置很多繁琐的参数,如 Webpack 配置、Router 配置和服务器配置等。如果需要做 SEO,要考虑的事情就更多了,怎么让服务端渲染和客户端渲染保持一致是一件很麻烦的事情,需…
  46. js运行机制浅析 众所周知,js是一门单线程的语言。主要同他的用途有关,同一个时间只能做一件事儿,作为浏览器脚本语言,JavaScript的主要用途是与用户互动,以及操作DOM,这决定了它只能是单线程,否则会带来很复杂的同步问题。 js事件循环 由于javaScript的资源加载是按序进行的,javaScript的单线程决定只有一个任务结束才可…
  47. vue组件之间的数据传递方法 在父组件中,可以通过子组件标签属性的形式将数据或者函数传给子组件,子组件通过props去读取父组件传过来的数据 用法 父组件传数据给子组件: 一般的属性值都是用来给子组件展示的 子组件传数据给父组件 属性值为函…
  48. js的继承方法小结(prototype、call、apply) js的原型继承 — prototype 先说下什么是prorotype? js中,俗话说“一切皆对象”。用 new 出来的都是函数对象;否则就是普通对象 函数对象都有 prototype (原型对象);而普通对象则只有 __proto__ (原型指针) 函数对象的一个特点:可以实现不同类之间的方法继承 函数的子类可以共享父类的方法…
  49. Redux 打怪记录(一) 单一数据源,只有唯一一个store state是只读的,唯一改变state的方法就是触发action 使用 纯函数 来执行修改 flux Redux并没有dispatcher的概念,原因是它依赖纯函数来替代事件处理器 Redux设想你永远不会变动你的数据。 Elm …
  50. key在Vue列表渲染时究竟起到了什么作用 Vue2+采用 diff 算法来进行新旧 vnode 的对比从而更新DOM节点。而通常在我们使用 v-for 这个指令的时候, Vue 会要求你给循环列表的每一项添加唯一的 key ,那么这个 key 在渲染列表时究竟起到了什么作用呢? 在解释这一点之前,你最好已经了解 Vue 的 diff 算法的具体原理是什么。 V…
  51. Vue的mergeOptions函数分析-上 Vue的mergeOptions函数的主要作用是用于合并选项(将俩个选项对象合并成一个),它是用于实例化和继承的核心函数。这也是为什么我们要去分析它。并且与函数相关的选项合并策略也都在一个文件里,定义在 /src/core/util/options.js 文件中。 使用场景 因为Vue的核心代码都是放在src文件夹下,所以我们可以在src目录下…
  52. VUE学习笔记:环境准备 Node是JavaScript语言的服务器运行环境。 所谓“运行环境”有两层意思:首先,JavaScript语言通过Node在服务器运行,在这个意义上,Node有点像JavaScript虚拟机;其次,Node提供大量工具库,使得JavaScript语言与操作系统互动(比如读写文件、新建子进程),在这个意义上,Node又是JavaScript的工具库。 Node内部采用G…
  53. 金三银四魔都两年半前端面经 先介绍下个人基本情况,16届本科非计算机相关专业,毕业转行前端,过年后裸辞休息了半个月,然后到三月份开始全力准备面试,主要是过去做过的项目总结,刷算法题,巩固基础知识之类的。3月末开始面试。因为目前网上面经还是以1~3年居多,我投简历对标的3~5年岗位,考察点确实有些不一样,这里把接近3个星期的面试经历分…
  54. 你真的了解npm-scripts吗? 作者:冯伟尧 GitHub: tank0317 我们都很熟悉的,通过 npm run script-name 可以执行 package.json 中 scripts 对象配置的脚本。但是,你或许不知道下面这些知识。 下文中 npm-scirpt 指 package.json scripts 中配置的脚本命令。 name-scirpt 指代某一个名字为 name 的脚本命…
  55. Node.js 内部是如何捕获异步错误的? 一、背景 众所周知,由于 JavaScript 特殊的 EventLoop 机制,由 Promise 异步产生错误是没有办法使用try…catch的: try { Promise.reject() } catch(err) { // 这里啥都 catch 不到 console.log(err) } 为了解决这个问题,我们必须在每一处产生异步的地方使用.catch()(或者用as…
  56. 理解 JavaScript 中的循环 type: FrontEnd title: Understanding the For…of Loop In JavaScript link: https://blog.bitsrc.io/understanding-the-for-of-loop-in-javascript-8aded97d7ef8 author: kurtwanger40 在JavaScript的世界中,我们可以使用很多种循环表达式: while表达式 do…
  57. webpack 配置哪些优化? module.exports = { //… module: { noParse: /jquery|lodash/, //不去解析jquery | lodash 中的依赖库 } }; 复制代码 如果js中引入jquery, webpack会去解析jq中是否有依赖库,配置 noParse 后打包时候忽略解析配置的库,提高打包效率。 2.解析时指定和排除查找目录 module:{ rules:[ { …
  58. 关于前端脚本异常监控的思考 这里讲的是如何高效合理的捕捉与定位问题,不涉及 pv、uv、埋点之类的业务监控 首先我们要明白一点,前端如何捕获错误,在代码中我们可以经常使用 try…catch 来捕获错误,但是 try…catch 无法捕获语法错误和异步错误,如下 所以 try…catch 不适合做全局的异常监听,当然对于已知的可能…
  59. keep-alive + vuex + mint + Infinite scroll 保存分页列表数据 在使用mintUI loadmore的时候,假如上拉加载到第三页,查看详情然后后退到列表页,列表组件重置。但是,有的情况是需要组件重置的,比如你在另一个组件添加了一条记录,那么再进入这个组件的时候就需要重置组件数据。 使用 keep-alive <keep-alive> 包裹动态组件时,会缓存不活动的组件实例,而不是销毁…
  60. TypeScript:面向编辑器编程 TypeScript 写久了,越来越觉得定义各种类型,接口啊其实都是在写编辑器自动提示的配置而已。而且现在 ts 的各种高级类型越来越多,整个类型系统甚至可以看作是一套函数式工具库。用它不难,用好它其实挺难的,其中的差别我觉得就像前端从面向 dom 的编程和转变为面向数据驱动编程那样,你得首先有类型思维,因为它一定…

关注github前端日报 订阅精彩文章

前端日报栏目数据来自码农头条,每日分享互联网上热门的前端开发、移动开发、设计、资源和资讯等,为开发者提供动力,如果觉得内容对你有用,记得分享给你的小伙伴。进入码农头条查看更多


关注我

我的微信公众号:前端开发博客,在后台回复以下关键字可以获取资源。

  • 回复「小抄」,领取Vue、JavaScript 和 WebComponent 小抄 PDF
  • 回复「Vue脑图」获取 Vue 相关脑图
  • 回复「思维图」获取 JavaScript 相关思维图
  • 回复「简历」获取简历制作建议
  • 回复「简历模板」获取精选的简历模板
  • 回复「加群」进入500人前端精英群
  • 回复「电子书」下载我整理的大量前端资源,含面试、Vue实战项目、CSS和JavaScript电子书等。
  • 回复「知识点」下载高清JavaScript知识点图谱

每日分享有用的前端开发知识,加我微信:caibaojian89 交流