huangpb的博客

好好学习,天天向上!

排序:
默认
按更新时间
按访问量

前端开发中,MVC/MVP/MVVM 的区别

MVC/MVP/MVVM 都是常见的软件架构设计模式。说到区别,主要在于 C(Controller)、P(Presenter)、VM(View-Model)。相同点则是 MV(Model-View)。 Model Model 层用于封装和应用程序的业务逻辑相关的数据以及对数据的处理方法。 V...

2018-11-12 23:54:26

阅读数:5

评论数:0

React Context

前言 Context被翻译为上下文,在编程领域,这是一个经常会接触到的概念,React中也有。 在React的官方文档中,Context被归类为高级部分(Advanced),属于React的高级API,但官方并不建议在稳定版的App中使用Context。 The vast majority...

2018-11-11 11:54:36

阅读数:21

评论数:0

WebSocket

何为 WebSocket? WebSocket 是 HTML5 的一个持久化的协议,它实现了浏览器与服务器的全双工通信,同时也是跨域的一种解决方案。由于是 HTML5 新特性,IE 只兼容到 IE10。 WebSocket 和 HTTP 都是应用层协议,都基于 TCP 协议。但是 WebSoc...

2018-11-04 22:46:11

阅读数:20

评论数:0

前端 postMessage

window.postMessage() 方法可以安全地实现跨域通信和页面间数据通信。 postMessage 可用于解决以下方面的问题: 页面和其打开的新窗口的数据传递 页面与嵌套的 iframe 消息传递 多窗口之间消息传递 想要使用 postMessage 实现跨域和页面间数据通信,...

2018-11-04 00:57:57

阅读数:25

评论数:0

微信小程序兼容 async / await 方案

要使用 ES7 的 async / await 的话,只靠微信开发者工具中的 Babel 转换工具是不够的,它还需要额外的 Babel 插件来编译 async / await 代码,这里我们可以做如下配置。 配置步骤如下: 1. 引入 regenerator 包 在自己的测试项目下 npm ...

2018-11-01 17:08:50

阅读数:85

评论数:0

服务器渲染和浏览器渲染的区别

何为渲染? 页面上的数据要发生更新,就是渲染。 这个工作放在服务器进行就是服务器渲染,放在浏览器进行就是浏览器渲染。 服务器端渲染,指的是后台语言通过一些模板引擎生成 html。 浏览器端渲染,指的是用 js 去生成 html,前端做路由。 浏览器端渲染路线: 请求一个 html。 ...

2018-10-31 23:14:04

阅读数:40

评论数:0

JavaScript响应式原理(React,Vue,Ng)

2018-10-27 23:53:24

阅读数:46

评论数:0

技术选型需要注意的事

1 引言 作者给出了从 12 个角度全面分析 JS 库的可用性,分别是: 特性。 稳定性。 性能。 包生态。 社区。 学习曲线。 文档。 工具。 发展历史。 团队。 兼容性。 趋势...

2018-10-27 16:14:42

阅读数:23

评论数:0

Web Worker 用法

一、概述 JavaScript 语言采用的是单线程模型,也就是说,所有任务只能在一个线程上完成,一次只能做一件事。前面的任务没做完,后面的任务只能等着。随着电脑计算能力的增强,尤其是多核 CPU 的出现,单线程带来很大的不便,无法充分发挥计算机的计算能力。 Web Worker 的作用,就...

2018-10-22 23:35:07

阅读数:28

评论数:0

React 中的 key 为何物?

数组和迭代器循环出的 DOM 元素要设置唯一的,固定不变的 key 值。 设置了 key 以后,页面更新时,React 会根据这个 key,只更新或重新渲染更改的组件,没有更改的组件则直接移动,而不是将它们从 DOM Tree 中移除然后再将它们重新创建,实现了复用,提高了渲染效率。 Key ...

2018-10-21 22:31:04

阅读数:25

评论数:0

JS 判断两个数组或对象是否相同

JS 判断两个数组是否相同 要判断2个数组是否相同,首先要把数组进行排序,然后转换成字符串进行比较。 JSON.stringify([1,2,3].sort()) === JSON.stringify([3,2,1].sort()); //true 或者 [1,2,3].sort().to...

2018-10-16 22:31:54

阅读数:130

评论数:0

数组常用高级API(包含 ES6)

1. Array.every     全部满足条件。 // 是否全部大于0 let a = [1,2,3,4].every(item => { return item > 0; }); console.log(a); // true 2....

2018-10-14 22:10:53

阅读数:15

评论数:0

前端缓存详解

前端缓存/后端缓存 扯了些没用的,我们先进入定义环节:什么是前端缓存?与之相对的什么又是后端缓存? 基本的网络请求就是三个步骤:请求,处理,响应。 后端缓存主要集中于“处理”步骤,通过保留数据库连接,存储处理结果等方式缩短处理时间,尽快进入“响应”步骤。当然这不在本文的讨论范围之内。 ...

2018-09-26 22:17:53

阅读数:51

评论数:0

JavaScript 之实现一个简单的 Vue

vue的使用相信大家都很熟练了,使用起来简单。但是大部分人不知道其内部的原理是怎么样的,今天我们就来一起实现一个简单的vue Object.defineProperty() 实现之前我们得先看一下Object.defineProperty的实现,因为vue主要是通过数据劫持来实现的,通过 ge...

2018-09-24 11:12:31

阅读数:56

评论数:0

React 的弹框实现(类 Antd 的 append 到 body)

Modal, PopUP, Toast, ToolTip 等这些都属于弹框。平时我们使用弹框一般有两种方式:一种是通过函数形式弹出,另一种是组件形式弹框。 下面我分别对两种弹出方式写了2个 Demo,如果有可以优化的地方,请多多指点。。。 函数形式弹出 // mask.js import ...

2018-09-18 23:26:51

阅读数:164

评论数:0

微信小程序之自动生成条形码和二维码

需求描述:商家用扫描枪扫用户条形码或二维码实现支付。 效果图: 说明:条形码和二维码都是通过 barcode.js 和 qrcode.js 插件由一串数字转换而成的,生成的图片就是 Canvas 图片。(插件下载地址见:我的 GitHub)   下面我总结一下整个实现流程: 1. 从...

2018-09-08 13:03:08

阅读数:515

评论数:0

详解 Babel

说到 babel,一连串名词会蹦出来: babel-cli babel-core babel-runtime babel-node babel-polyfill ... 这些都是 babel 吗?他们分别是做什么的?有区别吗? babel 到底做了什么?怎么做的? 简单来说把 Ja...

2018-08-30 22:54:11

阅读数:241

评论数:0

JS 的浅拷贝和深拷贝

浅拷贝只会拷贝一层,深层的引用类型改变还是会受到影响。 深拷贝是所有内部的属性还有值都被拷贝了一份,不管深层的引用类型怎么改都不会受到影响。 浅拷贝的实现方式 1、自定义函数 function shallowClone (initalObj) { var ob...

2018-08-27 22:41:18

阅读数:31

评论数:0

Node连接MySQL并封装其增删改查

Node连接Mysql 说到node,可能大家会想到MOngoDB作为数据库,这里将会介绍node与mysql的连接,并分享了封装好的实例代码,在项目开发中可直接使用。下一篇博客将会讲node连接MongoDB。 安装Mysql模块 npm install mysql 连接Mysql ...

2018-08-22 22:40:07

阅读数:43

评论数:0

web前端 — 移动端知识的一些总结

个人在移动端的一些总结归纳,有新的知识点会一直更新 一.css部分 1.用transition做动画时,变形尽量通过transform来实现,而不是用height,width等属性。transform可明显减少重绘、重画 1.meta标签 <meta name=&a...

2018-08-21 09:26:07

阅读数:48

评论数:0

提示
确定要删除当前文章?
取消 删除
关闭
关闭