实现小程序canvas拖拽功能

2018-09-05
阅读 2 分钟
5.1k
组件地址 [链接] 如何实现 使用canvas 使用movable-view标签 由于movable-view无法实现旋转,所以选择使用canvas 需要解决的问题 如何将多个元素渲染到canvas上 如何知道手指在元素上、如果多个元素重叠如何知道哪个元素在最上层 如何实现拖拽元素 如何缩放、旋转、删除元素 看起来挺简单的嘛,就把上面这几个问题解决了...

koa-send源码分析

2018-09-04
阅读 3 分钟
4.8k
通常我们在做静态文件服务的时候,首选CDN。当文件内容需要经常变动时,则可以采用nginx代理的方式。node本身也可以搭建静态服务,用koa static可以很容易实现这个功能。

你不知道的Virtual DOM(五):自定义组件

2018-09-03
阅读 5 分钟
8.5k
目前最流行的两大前端框架,React和Vue,都不约而同的借助Virtual DOM技术提高页面的渲染效率。那么,什么是Virtual DOM?它是通过什么方式去提升页面渲染效率的呢?本系列文章会详细讲解Virtual DOM的创建过程,并实现一个简单的Diff算法来更新页面。本文的内容脱离于任何的前端框架,只讲最纯粹的Virtual DOM。敲单词...

你不知道的Virtual DOM(四):key的作用

2018-08-29
阅读 7 分钟
10.1k
目前最流行的两大前端框架,React和Vue,都不约而同的借助Virtual DOM技术提高页面的渲染效率。那么,什么是Virtual DOM?它是通过什么方式去提升页面渲染效率的呢?本系列文章会详细讲解Virtual DOM的创建过程,并实现一个简单的Diff算法来更新页面。本文的内容脱离于任何的前端框架,只讲最纯粹的Virtual DOM。敲单词...

你不知道的Virtual DOM(三):Virtual Dom更新优化

2018-08-29
阅读 7 分钟
10.8k
目前最流行的两大前端框架,React和Vue,都不约而同的借助Virtual DOM技术提高页面的渲染效率。那么,什么是Virtual DOM?它是通过什么方式去提升页面渲染效率的呢?本系列文章会详细讲解Virtual DOM的创建过程,并实现一个简单的Diff算法来更新页面。本文的内容脱离于任何的前端框架,只讲最纯粹的Virtual DOM。敲单词...

深入理解css之float

2018-08-26
阅读 3 分钟
9.1k
在css中,是存在流的概念的。在正常情况下,页面总是从左到右,从上到下布局,这种被称为正常的流。但是有很多情况,正常流是没办法实现的,因此我们需要一些手段来破坏流,从而实现一些特殊的布局,而本节的主角float就具备破坏流的特性。

你不知道的Virtual DOM(二):Virtual Dom的更新

2018-08-25
阅读 8 分钟
14.6k
目前最流行的两大前端框架,React 和 Vue,都不约而同的借助 Virtual DOM 技术提高页面的渲染效率。那么,什么是 Virtual DOM ?它是通过什么方式去提升页面渲染效率的呢?本系列文章会详细讲解 Virtual DOM 的创建过程,并实现一个简单的 Diff 算法来更新页面。本文的内容脱离于任何的前端框架,只讲最纯粹的 Virtual D...

你不知道的Virtual DOM(一):Virtual Dom介绍

2018-08-23
阅读 5 分钟
42.8k
目前最流行的两大前端框架,React和Vue,都不约而同的借助Virtual DOM技术提高页面的渲染效率。那么,什么是Virtual DOM?它是通过什么方式去提升页面渲染效率的呢?本系列文章会详细讲解Virtual DOM的创建过程,并实现一个简单的Diff算法来更新页面。本文的内容脱离于任何的前端框架,只讲最纯粹的Virtual DOM。敲单词...

轻松生成小程序分享海报

2018-08-23
阅读 4 分钟
12.1k
小程序分享到朋友圈只能使用小程序码海报来实现,生成小程序码的方式有两种,一种是使用后端方式,一种是使用小程序自带的canvas生成;后端的方式开发难度大,由于生成图片耗用内存比较大对服务端也是不小的压力;所以使用小程序的canvas是一个不错的选择,但由于canvas水比较深,坑比较多,还有不同海报需要重现写渲染...

React Router核心依赖--history库

2018-08-13
阅读 6 分钟
5.5k
使用 React 开发稍微复杂一点的应用,React Router 几乎是路由管理的唯一选择。虽然 React Router 经历了 4 个大版本的更新,功能也越来越丰富,但无论怎么变,它的核心依赖 history 库却一直没变。下面我们来了解下这个在 github 上有 5k+ 星的库到底提供了什么功能。

Koajs中间件之context(三)

2018-08-09
阅读 3 分钟
3.3k
第一篇文章中我们讲过,“在Koa中,中间件是指连贯整个 Koa 应用程序,并共享资源的独立插件”,注意两个词,“连贯”与“共享资源”,与上面的代码一一对应,“连贯”对应“next”,“共享资源对应context”。Koa 中通过 context 处理上下文,下面分析一下 context。

Koajs中间件之next(二)

2018-08-09
阅读 4 分钟
6.2k
第一篇文章中我们讲过,“在Koa中,中间件是指连贯整个 Koa 应用程序,并共享资源的独立插件”,注意两个词,“连贯”与“共享资源”,与上面的代码一一对应,“连贯”对应“next”,“共享资源对应context”。Koa 中通过 next 贯穿整个应用程序,下面分析一下 next 中做了什么。

Koajs中间件之定义(一)

2018-08-09
阅读 2 分钟
3.9k
Koa 作为一个简单、易学、好用的的 Web 框架,只有区区几百行代码,被人津津乐道的就是其精妙的设计了。一直都在项目中使用Koajs,但其实很少认真的看过其中的源码,中间件作为 Koa 框架的精髓,如果明白了其中的原理基本上对 Koa 有了一半的了解。

从0开发豆果美食小程序——listItem组件&列表

2018-08-03
阅读 4 分钟
2.4k
点击 API 测试工具可以看到参数说明。pn 表示从第几个数据开始返回,rn 表示一次返回多少个数据。如果 pn = 0,rn = 10;想要第一次请求返回的数据下标是 0~9,第二次请求返回的是 10~19,那么需要 pn 每请求一次后加一, pn * rn 才会返回所期望的结果。

从0开发豆果美食小程序——tag组件

2018-08-01
阅读 5 分钟
3.7k
整个对象中包含 resultCode、reason 和 result 数组。result 数组中返回若干对象,每个对象中包含 parentId、name 和 list 数组,list 对象数组中,每个对象包含 id、 name 和 parentId。

从0开发豆果美食小程序——搜索组件

2018-07-31
阅读 5 分钟
3.9k
container:高度 100 rpx,背景色 #eee,flex 布局。input-wrapper:高度 80 rpx,背景色 #fff,flex 布局,border-radius: 20rpx。search-icon:宽高 32 rpx。input:字体和光标颜色 #000,字体大小 32 rpx。close-icon-wrapper:宽高 80 rpx,绝对定位。text:搜索按钮宽 110 rpx,高 65 rpx,绝对定位,左边框 2rpx s...

从0开发豆果美食小程序——项目搭建

2018-07-31
阅读 3 分钟
3.1k
效果图 严选是豆果美食的另一个小程序,在本项目中将严选忽略,只做首页、分类和收藏。 创建项目 创建一个空项目,不选择快速模板。项目名称为 cookbook。 目录规划 页面中的搜索、列表、菜谱详情封装成组件,以便于更好地复用和维护。 组件文档 我们为什么需要组件化开发? 配置 首先在根目录下创建以上三个文件。 app....

浅入深出setState(下篇)

2018-07-30
阅读 7 分钟
9.8k
在React中,如果是由React引发的事件处理(比如通过onClick引发的合成事件处理)和组件生命周期函数内(比如componentDidMount),调用this.setState不会同步更新this.state,除此之外的setState调用会同步执行this.state。 所谓“除此之外”,指的是绕过React通过addEventListener直接添加的事件处理函数,还有通过setTim...

实现一个mvvm

2018-07-29
阅读 4 分钟
6.8k
最近在团队内做了一次vue原理分享,现场手写了一个乞丐版mvvm,这里记录一下这个mvvm实现的过程。 源码:[链接] 这个mvvm是基于发布订阅模式实现(也是vue本身的实现原理),最终达到的效果如下: 使用方式也跟vue一样: {代码...} 实现很简单: {代码...} 原理: 最根本的原理很简单,无非是基于发布订阅的消息通知模式...

在微信小程序中愉快地使用sass

2018-07-29
阅读 4 分钟
21.8k
前言 在微信小程序中,css是用wxss来表示,但写法基本一致。需要注意的是wxss扩展了两个特性,分别是: 尺寸单位 样式导入 具体可参考wxss,此处不做过多赘述。 为了方便打包sass,我们使用gulp来处理我们的scss文件,将其转换为wxss。 目录结构 在开发中,我们一般会有一个src源代码目录,一个dist目录用来输出我们打包...

koa-router源码分析

2018-07-29
阅读 8 分钟
2.2k
定义非常简洁,含义也一目了然,它就是koa的路由中间件。koa为了自身的轻量,不在内核方法中绑定任何中间件,而路由功能对于一个web框架来说,又是必不可少的基础功能。因此koa-router为koa提供了强大的路由功能。

React Event 实现原理

2018-07-19
阅读 9 分钟
6.2k
并且 React 自己内部实现了一个合成事件,使用 React 的时候通常你不需要使用 addEventListener 为一个已创建的 DOM 元素添加监听器。你仅仅需要在这个元素初始渲染的时候提供一个监听器。

浅入深出setState(上篇)

2018-07-12
阅读 3 分钟
9.9k
这是一个React组件实现组件可交互所需的流程,render()输出虚拟DOM,虚拟DOM转为DOM,再在DOM上注册事件,事件触发setState()修改数据,在每次调用setState方法时,React会自动执行render方法来更新虚拟DOM,如果组件已经被渲染,那么还会更新到DOM中去。
这个过程,setState就像一个点燃引擎的打火石,发动了React核心...

理解TCP/IP底层的结构和传输

2018-07-06
阅读 5 分钟
6.3k
计算机网络是大学计算机系的核心基础课,可能大部分人上完课也就忘得差不多了,工作之后,若不是和运维相关,就丢得更远了。作为一名程序员,对于TCP/IP协议的应用层或运输层的协议还是比较熟悉的,下面两层的协议可能就不太关注了。而链路层和网络层,正是构成目前全球互联网的基石。运输层及应用层协议,是高度抽象的...

axios源码阅读(一)

2018-07-02
阅读 7 分钟
3.2k
axios是一个基于promise的http库,支持浏览器和node端,最近我在做beauty-we的api设计,研读一个成熟的http库势在必行,axios功能完整、api简洁、注释清晰,再适合不过,现在就让我们开始吧~

微信小程序 wx.request 对于 JSON 含 \u2028 处理异常

2018-07-01
阅读 2 分钟
10.5k
问题描述 最近在小程序的开发过程中,遇到一个神奇的问题。 小程序用于发起网络请求的 API wx.request 默认会对为 JSON 格式的响应体进行解析,返回 JS Object。 {代码...} 其中 res.data 一般会是 Object 类型。 但是,响应体的 JSON 数据包含了 \\u2028 的字符,就会解释失败,输出的 res.data 是响应体的字符串类型。...

你可能并不需要 Redux

2018-06-30
阅读 3 分钟
2.8k
人们经常在他们不需要 Redux 的时候选择它。“如果我们的应用没有使用 Redux 怎么扩展?”,紧接着,开发人员对间接的Redux引入他们的代码感到不满。“为什么我必须引用三个文件才能得到一个简单的功能?” 为什么呢!

你真的会写hello world的么?

2018-06-29
阅读 2 分钟
2.7k
自古,三百六十行,每一行入行的时候都有个仪式。现如今编程这个行当,也约定俗成出了一个入行仪式,就是选你将要使用的编程语言,写段代码输出hello world!,这片文章讲的就是这么个事——写个函数输出hello world,请真的不要觉得很简单。

Redux设计思想与使用场景

2018-06-23
阅读 3 分钟
13.7k
Redux 作为 React 全家桶的一名重要成员,在众多大牛的力荐之下得到了广泛的应用,Github 上的 Star 也达到 42k 之多!然而,当触及最根本的问题,为什么要使用 Redux 的时候,很多人是说不清楚的。本文尝试解读 Redux 的设计初衷,并结合 React 谈谈实际的使用场景。本文只谈理论,不会对 Redux 的使用作过多的介绍。

深入理解css之vertical-align

2018-06-23
阅读 5 分钟
14.7k
vertical-align用来指定行内元素(inline)或表格单元格(table-cell)元素的垂直对齐方式。也就是说,对于块级元素,vertical-align是不起作用的。