JavaScript的垃圾回收机制

发表于 | 分类于 编程语言/JavaScript

JavaScript 在定义变量时就完成了内存分配,我们创建基本类型、对象、函数……所有这些都需要内存,那么内存是在什么时候被回收的呢?了解JavaScript内存分配和垃圾回收是必不可少的技能,本文将整理这个问题。

初识Grid布局

发表于 | 分类于 前端/CSS

这里谈论的网格布局不是Bootstarp中的网格布局(貌似前几天Bootstarp发布v4.0版本了~),而是浏览器支持的一种新的布局方式。之前虽然略有耳闻,但一直没有去了解,最近发现貌似浏览器的支持还不错,于是决定系统地学习一下。

好像很久没有正儿八经地学习CSS了~

初识weex

发表于 | 分类于 客户端

现在公司的项目是基于weex开发的,我负责的前端业务也是采用Vue,早先学了点Android的东西,前段时间一直在学习Vue的源码,于是现在打算来理一理weex相关的知识,后面也可以跟客户端的同学探讨一下。

Vue源码阅读笔记之路由管理(六)

发表于 | 分类于 源码分析/Vue

我们可以通过VueVue-router来构建单页面应用。在传统的web项目里面,往往存在多个页面映射不同的功能,而在单页面应用中,不同的页面对应的是不同的组件。

在之前的博客同构渲染实践history与单页面应用路由中,我尝试实现了单页面的路由管理,不过十分简陋,现在让我们来看看Vue-router的实现原理。

Vue源码阅读笔记之组件系统(五)

发表于 | 分类于 源码分析/Vue

这是”Vue源码阅读笔记”系列第五篇文章。在之前我们分析了Vue的模板编译和渲染过程,以及响应式数据的原理,但是却有意识地避开了一个很重要的地方:组件。组件系统是Vue最强大的功能之一,接下来我们就从源码中,一步步揭开组件的神秘面纱。

Vue源码阅读笔记之语法细节(四)

发表于 | 分类于 源码分析/Vue

这是”Vue源码阅读笔记”系列第四篇文章。上一章我们分析了Vue的模板编译和渲染过程,却忽略了模板中的很多细节,比如属性绑定、事件绑定、指令和计算属性等。此外还有混合、自定义属性监听等一些细节没有处理,由于后续的分析中这些细节不可避免,因此趁热打铁,来梳理一下Vue相关的一些细节。

Vue源码阅读笔记之模板渲染(三)

发表于 | 分类于 源码分析/Vue

这是”Vue源码阅读笔记”系列第三篇文章。在前面我们分析了Vue响应式数据系统,并了解到当数据变化时会通知变化属性的Watcher,然后更新视图。渲染模板和更新视图的逻辑均由Vue内部封装,我们只需要关注数据的逻辑即可,接下来就让我们学习Vue的模板系统。

Vue源码阅读笔记之响应式原理(二)

发表于 | 分类于 源码分析/Vue

这是"Vue源码阅读笔记"系列第二篇文章。前一篇文章中我们提到initState中调用的initData方法,调用observe(data)完成了对数据的观察。

在很早之前的对象描述符与响应式数据这篇文章中,对于defineProperty做了简单的整理,并实现了一个比较粗糙的响应式数据更新视图的例子。接下来让我们深入Vue的核心部分:响应式数据的工作原理。

Vue源码阅读笔记之项目结构和Vue对象(一)

发表于 | 分类于 源码分析/Vue

vue是我接触到的第一个MVVM框架,在工作中使用也比较频繁。早前曾尝试过阅读源码,奈何功力不够,草草了事,收获的东西有限,现在决定重新阅读Vue及相关技术栈(vue-routervuexaxios等)源码,并整理相关知识。除了加深对于Vue的理解之外,还希望能够提升阅读源码的能力~

iOS基础之webview

发表于 | 分类于 客户端/iOS

iOS中的Webview与Android中的Webview有一些差异,包括网络权限、加载页面、与JS交互等。不过大体使用思路是类似的,下面总结一下iOS中的Webview。

Objective-C基础入门

发表于 | 分类于 编程语言/Objective-C

博客同构渲染实践

发表于 | 分类于 博客

《同构JavaScript应用开发》读书笔记

发表于 | 分类于 读书笔记

自定义Hexo主题

发表于 | 分类于 杂项

从学前端开始貌似一直在折腾各种各样的博客,之前免费的云服务器快要到期了,加之最近用不了梯子,决定重新回到静态博客,于是重拾Hexo,打算将之前使用SSR搭建的博客主题移植过来,于是有了这篇博客,主要整理自定义Hexo主题以及使用Travis CI自动化部署的实践心得。

webpack折腾记(三)

发表于 | 分类于 前端/前端工程

webpack在提供便利的同时会带来一些新的问题,将所有的工具代码打包到不同的页面文件中,会导致页面脚本体积太大,且不利于缓存。一种解决思路是将很常用的模块(以及整个项目的依赖库文件)放在CDN,通过导入externals来使用外部模块,对于那些只在几个页面内公用的模块,可以将他们进行打包。 然而,webpack只是打包工具,对于externals的外部模块,不提供对应的模块加载器功能,而手动在页面上导入大量的外部脚本不是一件很合理的事儿。 这篇文章是关于如何处理webpack与cdn资源之间尝试(写完感觉又钻进了某个死胡同)。

mockjs使用心得

发表于 | 分类于 前端/前端工程

在前后端分离的开发过程中,难免会遇到前端等待后台接口数据的场景。之前的做法是临时写一堆测试数据,然后等待后台开发完毕再对接接口,同时删除之前的测试数据。

前段时间跟赛文讨论到这个问题,提到了他们在项目中正在使用mockjs,这是一个专门用于自动生成测试数据的框架,之前略有耳闻,索性也尝试在vue-cli的项目中集成了mockjs,开发体验确实不错。下面是整理的一点心得。

Android小项目之笑话大全

发表于 | 分类于 客户端/Android

陆陆续续学习Android开发也有一段时间了,总觉得应该写点东西练练手。这是尝试的第一个Demo,用到的技术点包括FragmentRecyclerView、网络请求、UI更新等。

使用Guzzle并发请求接口

发表于 | 分类于 后端

最近在重构官网,为了支持SEO,整个项目的结构从采用AngularJs的单页面应用结构回归到PHP服务端渲染。问题来了:之前统一调用接口可以保证三端(APP,PC和移动web端)数据同步,现在如果是单独为PC端写一套业务逻辑,需要花费大量的时间精力,且后期维护可能比较困难(需要维护两处)。因此为了最大程度上保证数据同步,决定在通过服务器中转请求原始数据接口,然后渲染页面。经过筛选最终选定了Guzzle框架,随之而来的便是网络请求效率的问题~

《现代操作系统》读书笔记

发表于 | 分类于 读书笔记

第一次打开《现代操作系统》这本书都是去年的事儿了,中间断断续续地翻几页,最近终于把前9章的内容读完了(后面几章是操作系统实例解析),因此决定记录阅读过程中学到的一些关于操作系统的概念。

从Phaser中了解游戏的几个概念

发表于 | 分类于 游戏

上个周末趁着双休,尝试着学习Phaser框架然后写了两个小游戏。一直想要写些小游戏,与之前学习Cocos框架相比,Phaser要简单得多,加之文档齐全,示例Demo也比较多,所以上手难度要低很多。这里整理了小游戏开发的东西,以及我对于游戏开发的一些理解。