• 神奇的选择器 :focus-within

    Posted by : lon.y@qq.com on 2018年8月5日

    CSS 的伪类选择器和伪元素选择器,让 CSS 有了更为强大的功能。 伪类大家听的多了,伪元素可能听到的不是那么频繁,其实 CSS 对这两个是有区分的。 有个错误有必要每次讲到伪类都提一下,有时你会发现伪类元素使用了两个冒号 (::) 而不是一个冒号 (:),这是 CSS3 规范中的一部分要求,目的是为了区分伪类和伪元素,大多数浏览器都支持下面这两种表示方式。 通常而言, #id:after{ ... } #id::after{ ... } 符合标准而言,

    阅读全文...

  • 鲜为人知的 Python 语法

    Posted by : lon.y@qq.com on 2018年8月4日

    所有人(好吧,不是所有人)都知道 Python 是一门用途广泛、易读、而且容易入门的编程语言。 但同时 Python 语法也允许我们做一些很奇怪的事情。 使用 lambda 表达式重写多行函数 众所周知 python 的 lambda 表达式不支持多行代码。但是可以模拟出多行代码的效果。 def f(): x = 'string' if x.endswith('g'): x = x[:-1] r = '' for i in xrange(len(x)):

    阅读全文...

  • 网页程序迁移至微信小程序web-view详解

    Posted by : lon.y@qq.com on 2018年8月3日

    小程序现在越来越流行,但是公司的很多项目都是用网页写的,小程序语法不兼容原生网页,使得旧有项目迁移至小程序代价很高。 小程序之前开放了webview功能,可以说是网页应用的一大福音了,但是微信的webview有一些坑,这篇文章就是列举一下我在开发过程中遇到的一些问题以及我找到的一些解决方案。 遇到的问题 openid登录问题 webview动态src 支付功能 分享功能 扫描普通二维码跳转特定页面 返回按钮缺失问题 openid登录问题 微信webview

    阅读全文...

  • 一篇文章理解JS继承——原型链/构造函数/组合/原型式/寄生式/寄生组合/Cla…

    Posted by : lon.y@qq.com on 2018年8月3日

    说实在话,以前我只需要知道“寄生组合继承”是最好的,有个祖传代码模版用就行。最近因为一些事情,几个星期以来一直心心念念想整理出来。本文以《JavaScript高级程序设计》上的内容为骨架,补充了ES6 Class的相关内容,从我认为更容易理解的角度将继承这件事叙述出来,希望大家能有所收获。 1. 继承分类 先来个整体印象。如图所示,JS中继承可以按照是否使用object函数(在下文中会提到),将继承分成两部分(Object.create是ES5新增的方法,

    阅读全文...

  • vue2.x源码解析系列二: Vue组件初始化过程概要

    Posted by : lon.y@qq.com on 2018年8月3日

    这里分析的是当前(2018/07/25)最新版 V2.5.16 的源码,如果你想一遍看一遍参阅源码,请务必记得切换到此版本,不然可能存在微小的差异。 大家都知道,我们的应用是一个由Vue组件构成的一棵树,其中每一个节点都是一个 Vue 组件。我们的每一个Vue组件是如何被创建出来的,创建的过程经历了哪些步骤呢?把这些都搞清楚,那么我们对Vue的整个原理将会有很深入的理解。 从入口函数开始,有比较复杂的引用关系,为了方便大家理解,我画了一张图可以直观地看出他

    阅读全文...

  • CSS 的空格处理

    Posted by : lon.y@qq.com on 2018年8月2日

    一、空格规则 HTML 代码的空格通常会被浏览器忽略。 ◡◡hello◡◡world◡◡ 上面是一行 HTML 代码,文字的前部、内部和后部各有两个空格。为了便于识别,这里使用半圆形符号◡表示空格。 浏览器的输出结果如下。 hello world 可以看到,文字的前部和后部的空格都会忽略,内部的连续空格只会算作一个。这就是浏览器处理空格的基本规则。 如果希望空格原样输出,可以使用<pre>标签。 ◡◡hello◡◡world◡◡ 另一种方法是,

    阅读全文...

  • 想学习区块链?那就用 Python 构建一个

    Posted by : lon.y@qq.com on 2018年8月1日

     了解区块链是如何工作的最快的方法是构建一个。 你看到这篇文章是因为和我一样,对加密货币的大热而感到兴奋。并且想知道区块链是如何工作的 —— 它们背后的技术基础是什么。 但是理解区块链并不容易 —— 至少对我来说是这样。我徜徉在各种难懂的视频中,并且因为示例太少而陷入深深的挫败感中。 我喜欢在实践中学习。这会使得我在代码层面上处理主要问题,从而可以让我坚持到底。如果你也是这么做的,在本指南结束的时候,你将拥有一个功能正常的区块链,并且实实在在地理解了它的工

    阅读全文...

  • React/Redux打造的同构Web应用

    Posted by : lon.y@qq.com on 2018年7月31日

    大家好,我是原一成(@herablog),目前在CyberAgent主要担任前端开发。 Ameblo(注: Ameba博客,Ameba Blog,简称Ameblo)于2016年9月,将前端部分由原来的Java架构的应用,重构成为以node.js、React为基础的Web应用。这篇文章介绍了本次重构的起因、目标、系统设计以及最终达成的结果。 新系统发布后,立即就有人注意到了这个变化。   twitter_msg.png 系统重构的起因 2004年起,Ameb

    阅读全文...

  • 30分钟ES6从陌生到熟悉

    Posted by : lon.y@qq.com on 2018年7月31日

    前言 ECMAScript 6.0(以下简称 ES6)是 JavaScript 语言的下一代标准,已经在 2015 年 6 月正式发布了。它的目标,是使得 JavaScript 语言可以用来编写复杂的大型应用程序,成为企业级开发语言。 这句话基本涵盖了为什么会产生ES6这次更新的原因——编写复杂的大型应用程序。 回顾近两年的前端开发,复杂度确实在快速增加,近期不论从系统复杂度还是到前端开发人员数量应该达到了一个饱和值,换个方式说,没有ES6我们的前端代码依

    阅读全文...

  • 图解 React Native

    Posted by : lon.y@qq.com on 2018年7月31日

    系列博客: 用通俗的语言和涂鸦来解释 React 术语 图解 React 图解 React Native (本文) 组件、Props 和 State (待翻译) Props 和 State 深入理解 (待翻译) React Native vs. Cordova、PhoneGap、Ionic,等等 (待翻译) 在上一篇文章中,我们介绍了什么是 React 以及是什么使得它如此特别。今天我们将介绍 React Native: 它是做什么的?它出自何处?它和 R

    阅读全文...