20200612 前端开发日报

Vue组件为什么data必须是一个函数?;学习vue源码(10)手写render渲染函数;图文并茂的前端面试分享(成渝地区专用);JavaScript 内存泄漏防范之道;除了 FastJson,你也应该了解一下 Jackson(一);如何让JavaScript更优雅地访问Spring Boot REST API;JavaScript|制作网页随机验证码;Vue动态组件 & keep-alive

  1. Vue组件为什么data必须是一个函数?

    我们需要先复习下原型链的知识,其实这个问题取决于 js ,而并非是 vue 。 function Component(){ this.data = this.data } Component.prototype.data = { name:'jack', age:22, } 复制代码 首先我们达成一个共识(没有这个共识,请补充下 js 原型链部分的知识): 实例它们构造函数内的this内容是不一...

  2. 学习vue源码(10)手写render渲染函数

    compile 部分已经讲完了 (compile部分分为 解析器 + 优化器+ 代码生成器), 终于走到了 render,今天就来给自己记录下渲染三部曲的第二部render, (渲染三部曲= compile + render生成Vnode + 将Vnode通过 update 挂载到 页面上), update里 有一系列 diff操作。 咦,render 内容不多的 噔噔噔噔 render 的作...

  3. 图文并茂的前端面试分享(成渝地区专用)

    面试造火箭,工作拧螺丝! 在技术圈毕竟只有百分之一的人能进入BAT,百分之九九的小伙伴只能在普通公司做这普通的事情,此文没有BAT啥经验,都是基础。帮助小伙伴们快速梳理知识,不会涉及到具体的很细节的知识点,关注面试本身。公司一般会从以下5个方面(HTML5+css3/JS/框架/项目/工具)考察一个人的能力,此文总结...

  4. JavaScript 内存泄漏防范之道

    持续进步的同学都关注了“1024译站” 这是1024译站的第 92 篇文章 一般情况下,忽视内存管理不会对传统的网页产生显著的后果。这是因为,用户刷新页面后,内存数据都被清理了。 但是随着SPA(单页应用)的普及,我们不得不更加关注页面的内存管理。用户在 SPA 上往往很少刷新页面,随着...

  5. 除了 FastJson,你也应该了解一下 Jackson(一)

    内容纲要 在上月末的时候收到一条关于fastjson安全漏洞的消息,突然想到先前好像已经有好多次这样的事件了(在fastjson上面)。关于安全方面,虽然中枪的机率微小,但是在这个信息越来越复杂的时代,安全性也变得越来越重要,就像DevSecOps的诞生,在软件交付的整个价值流中我们也需要注重安全这方面。当然我们...

  6. 如何让JavaScript更优雅地访问Spring Boot REST API

    如花是前端开发同学,精通各种框架和JS工具链,雷卷是Java程序猿,对Spring Boot比较熟悉而已,他们经常配合做一些项目开发。一天 产品经理 要求开发一个新的Social项目,准备试水一下, 项目之旅由此开始啦。 前后端分离 如花主要负责前端,如界面、交换、REST API 调用等,雷卷主要负责后端,数据库、Redis...

  7. JavaScript|制作网页随机验证码

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章。 问题描述 网站为了防止用户利用机器人自动注册、登陆和灌水,都会采用验证码技术。验证码技术其实就是把一串随机的数字生成图片,在图片中添加一些干扰元素,用户采用肉眼识...

  8. Vue动态组件 & keep-alive

    前言 在 vue 中,实现 Tab 切换主要有三种方式:使用动态组件,使用 vue-router 路由,使用第三方插件。本文将详细介绍Vue动态组件。所谓动态组件就是让多个组件使用同一个挂载点,并动态切换。 一、is用法 通过使用保留的 <component> 元素,动态地绑定到它的 is 特性,我们让多个组件可以使用同一个挂载...

  9. 手把手带你撸个属于自己react项目|webpack+babel+typescript+eslint

    你们都不看的总集篇: 从零开始的大前端筑基之旅(深入浅出,持续更新~) 觉得不错就顺手点个赞吧~ 写前端一年多了,用的都是大佬建好的架子,还没自己从头建个项目,现在开始踩坑。 项目大体包括以下几部分 目录规范 react webpack less typescript eslint axios封装 初始化项目 ...

  10. 【从零打造前端团队生态系统】统一代码规范

    引起不必要的错误。有些同学还没有代码规范这个概念,有时少写了一个“}”,可能需要花很长一段时间来排查。 引起不必要的合并冲突。特别是团队不断成长壮大,可能会出现一个项目多个人在进行开发维护,甚至同一个文件多个人在修改,这都是十分平常的。如果每个人都有自己的一套规范,合并代码时可能就会需要解决很多不...

  11. TypeScript:重新发明一次 JavaScript

    作为一个 Node.js 开发者,我很早便了解到了 TypeScript,但又因为我对 CoffeeScript 的喜爱,直到 2016 年才试用了一下 TypeScript,但当时对它的学习并不深入,直到最近又在工作中用 TypeScript 开发了两个后端...

  12. 解析vue双向绑定原理

    vue的响应式数据/双向绑定主要是指: 数据变化更新视图,视图变化更新数据。 将data中的js对象做遍历,利用 Object.defineProperty 将data中的数据全部转换成 getter/setter ,每个组件都对应一个 Watcher 实例,收集数据中的依赖,当数据发生改变触发 setter 时,会通知对应的组件,组件通过虚拟DOMdiff算法再做改变,...

  13. 2020年,你可能需要基于Vue的微服务架构实践,在服务端或客户端聚合子服务

    # 拉取代码 git clone git@github.com:fmfe/vue-genesis-micro.git # 安装依赖 npm install # 开发环境启动 npm run dev # 打包生产环境代码 npm run build # 生产环境运行 npm run start 复制代码 微服务是什么? 微服务是一个新兴的软件架构,就是把一个大型的单个应用程序和服务拆分为数十个的支持微服务。 为什么...

  14. 谈谈图片上传及canvas压缩的流程

    我们通常在做图片上传的时候都会遇上这样的情况,一是后端接口限制上传图片的大小,或者是即使后端没有限制大小,因为图片太大在前端渲染时太慢,造成页面加载体验较差。因此我们很有必要对上传的图片进行压缩。

  15. JavaScript 基本类型和引用类型

    由于js 属于弱类型的语言,按照ECMA-262的定义,js的变量与其他变量有很大的区别,其中包括了不存在定义哪一种变量必须要保存哪一种数值类型,比如,在java语言规范中字符串类型的数值必须显式的声明为String类型,而在js中统一使用var声明,在ES6中提供了let,const进行变量声明 javaScript定义两种不同类型的变量:...

  16. 前端动画必知必会:React 和 Vue 都在用的 FLIP 思想实现小姐姐流畅移动

    前言 在 Vue 的官网中的过渡动画章节中,可以看到一个很酷炫的动画效果 乍一看,让我们手写出这个逻辑应该是非常复杂的,先看看本文最后要实现的效果吧,和这个案例是非常类似的。 预览 也可以直接进预览网址里看...

  17. VUE-SSR框架搭建步骤及与SPA应用结合,实现一套代码两种渲染方式

    VUE-SSR简介 Vue.js 是构建客户端应用程序的框架。默认情况下,可以在浏览器中输出 Vue 组件,进行生成 DOM 和操作 DOM。然而,也可以将同一个组件渲染为服务器端的HTML字符串,将它们直接发送到浏览器,最后将这些静态标记"激活"为客户端上完全可交互的应用程序。 服务器渲染的 Vue.js 应用程序也可以被...

  18. 几个有用的 JavaScript 技巧

    JavaScript 数组有内置的 sort 方法。默认情况下 sort 方法把数组元素转换为字符串,并对其进行字典排序。在对数字数组进行排序时,这有可能会导致一些问题。所以下面是解决这类问题的简单解决方案。 .sort((a,b) => a-b); >>> 复制代码 这里提供了一个将数...

  19. JavaScript常用方法集

    日期格式化 {代码...} 计算时分秒差值 {代码...} 深拷贝 {代码...} 数组去重 {代码...} 数组对象排序 {代码...}

  20. 使用Vue Composition API写出清晰、可扩展的表单

    表单是前端开发中最棘手的部分之一,您可能会在其中发现很多混乱的代码。 基于组件的框架,如 Vue.js,在提高前端代码的可扩展性方面做了很多工作,但是表单的问题仍然存在。 在本教程中,将向您展示新的 Vue Composition API (即将加入 Vue 3 中)如何使表单代码更清晰、更具可扩展性。 为什么表单代码经常很...

  21. websocket 相关及socket.io创建聊天室

    因为 HTTP 协议有一个缺陷:通信只能由客户端发起,单向请求,如果服务端有状态变化,却无法及时通知客户端。(“轮询”效率低,要一直保持连接或者重复连接)

  22. ES6 Promise详解

    Promise 是ES6 中一个JS 的 Promise 类型对象,用来传递异步操作的消息。有了 Promise 对象,就可以将异步操作以同步操作的流程表达出来,避免了层层嵌套的回调函数。此外,Promise 对象提供统一的接口,使得控制异步操作更加容易。Promise 也有一些缺点。首先,一旦新建它就会立即执行,无法中途取消Promise。其次,Pro...

  23. 为何前端框架VUE到前端组件SpreadJS都选择了TypeScript

    近期VUE作者尤雨溪发文阐述了Vue 3的设计过程,其中专门用一段落说明了切换到TypeScript开发的原因,尤大也在不同场合多次提到了TypeScript的优势,并总结说“真香”。

  24. RxJS介绍

    RxJS 是 Reactive Extensions for JavaScript 的缩写,是一个基于可观测数据流的响应式编程的库。它是基于订阅-发布模式、观察者模式与迭代器实现的,Vue项目中的 eventbus 就是基于订阅-发布实现的。响应式编程是一种面向数据流和变化传播的编程范式。这意味着可以在编程语言中很方便地表达静态或动态的数据流,而相关...

  25. 聊聊前端代码覆盖率

    在讲之前得说下 前端覆盖率的水真的是很深的,其实到目前为止还有很多未解之谜,由于对babel的编译以及ast了解的不是很多。所以确实分析问题起来很困难。 前端代码覆盖率方案 关于前端代码覆盖率还不了解这块内容的同学们,可以参考下以下几篇文章,这里就不做赘述了。 基于 Istanbul 优...

  26. Vue的diff算法是如何操作运用的?本文教你

    本文旨在理一下vue中diff算法的主要逻辑和关键细节。 从一个简单的demo切入: p标签渲染一个items数组 <div id="demo"> <p v-for="item in items" :key="item">{{ item }}</p> </div> <script src="../vue-source/dist/vue.js"></script&...

更多内容请关注公众号【前端开发博客】每日更新
20200612 前端开发日报

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