监听一个变量的变化,当变量变化时执行某些操作,这类似现在流行的前端框架(例如 React、Vue等)中的数据绑定功能,在数据更新时自动更新 DOM 渲染,那么如何实现数据绑定喃?
本文给出两种思路:
ES5 的 Object.defineProperty
ES6 的 Proxy
ES5 的 Object.defineProperty
Object.defineProperty() 方法会直接在一个对象上定义一个新属性,或者修改一个对象的现有属性,并返回此对象
——MDN
...阅读全文>>
Node.js的Cluster多进程模式。
PM2的实现原理,它是基于Cluster模式的封装。
Node.js,都是以单线程的方式运行的,因此,在多核心处理器的系统中并不能发挥其最大的性能。
Node.js的cluster模块
幸运的是,Node.js给我们提供了cluster模块,它可以生成多个工作线程来共享同一个TCP连接。
它是如何运作的呢?
首先,Cluster会创建一个master,然后根据你指定的数量复制出多个server app(也被称之为工作线程)。它通过IPC通道与工作线程之间...阅读全文>>
function createThunkMiddleware(extraArgument) {
return function thunk(store) {
return function (next) {
return function (action) {
// 从store中结构出dispatch, getState
const { dispatch, getState } = store;
// 如果action是函数,将它拿出来运行,参数就是dispatch和getState
i...阅读全文>>
回顾Redux设计和使用的三大基本原则
单一数据源,也就是store中的state是唯一的
state 是只读,Redux并没有暴露出直接修改state的接口,必须通过action来触发修改(即:只有store能改变自己的state)
reducer必须是纯函数
Redux的设计初衷
先从Redux的设计层面来解释为什么Reducer必须是纯函数。
Redux的设计参考了Flux的模式,作者希望以此来实现时间旅行,保存应用的历史状态,实现应用状态的可预测。所以整个Redux都是函数式编程的...阅读全文>>
这篇文章主要介绍了vue data不可以使用箭头函数问题,本文通过源码解析给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
首先需要明确,a() {}和 b: () => {}是不同的
let obj = {
a() {},
// 相当于
a:function() {},
b: () => {}
}
1 VUE.js 源码解析
注意此处只设计核心代码
这段代码也是UMD实现原理,本文这里不是重点,有兴趣的可以自行探究。
(function (global, factory) {
typeof exp...阅读全文>>
一、什么是XSS?
XSS全称是Cross Site Scripting即跨站脚本,当目标网站目标用户浏览器渲染HTML文档的过程中,出现了不被预期的脚本指令并执行时,XSS就发生了。
二、XSS分类
XSS有三类:反射型XSS(非持久型)、存储型XSS(持久型)和DOM XSS
1、反射型XSS
发出请求时,XSS代码出现在URL中,作为输入提交到服务器端,服务器端解析后响应,XSS代码随响应内容一起传回给浏览器,最后浏览器解析执行XSS代码。这个过程像一次反射,故叫反射型...阅读全文>>
先创建一个chaifen文件夹,保存图片,video.avi是待拆分的视频源
1)视频每一帧保存一张图片
ffmpeg -i video.avi chaifen/%06d.png
2)视频每一秒保存二十张图片
ffmpeg -i video.avi -r 20 chaifen/%06d.png
3)视频每十秒保存一张图片
ffmpeg -i video.avi -r 0.1 chaifen/%06d.png
指令说明
...阅读全文>>
一、SSE 的本质
严格地说,HTTP 协议无法做到服务器主动推送信息。但是,有一种变通方法,就是服务器向客户端声明,接下来要发送的是流信息(streaming)。
也就是说,发送的不是一次性的数据包,而是一个数据流,会连续不断地发送过来。这时,客户端不会关闭连接,会一直等着服务器发过来的新的数据流,视频播放就是这样的例子。本质上,这种通信就是以流信息的方式,完成一次用时很长的下载。
SSE 就是利用这种机制,使用流信息向浏览器推送信息。它基于 HTTP 协议,目前除了 IE/Edge,其他浏览器都支持。
SSE 也有自己的优点。
SSE 使...阅读全文>>
简单说下思路
eslint 优先级最高,装插件eslint-config-airbnb-base,eslint-config-prettier,eslint-plugin-vue,可以覆盖 prettier 的设置
eslint 主要负责 vue/js 的格式化
prettier 主要负责 html/css/less/scss… 的格式化
Vetur 也有格式化功能,直接 disable 掉,我们用更高级的
prettier 不支持 stylus,但是 Vetur 的依赖包括了stylusSupremacy,可以解决
所有...阅读全文>>
本站评论功能被攻击,暂开启验证码校验阅读全文>>