从dark-slash中学习游戏动画

最近在学习游戏开发中的动画效果(主要是技能效果),苦于找不到合适的资料,发现cocos官方提供了一个dark-slash暗黑斩的教学项目,这是一个比较完整的游戏项目,也包含了不少动画项目,很适合新手学习,本文主要整理了阅读该项目的一些收获。

阅读全文

开发独立游戏需要解决的一些问题

做游戏一直是我的夙愿,也是我转行进入软件开发的动机。如今,当我已经有5年的开发经验,准备开发自己的独立游戏的时候,发现这件事远比我想的复杂,本文记录了我关于独立游戏开发的一些思考,以及对未来的展望。

阅读全文

petite-vue源码分析

最近发现Vue增加了一个petite-vue的仓库,大概看了一下,这是一个无虚拟DOM的mini版Vue,前身貌似是vue-lite(瞎猜的~),主要用于在服务端渲染的HTML页面中上"sprinkling"(点缀)一些Vue式的交互。颇有意思,于是看了下源码(v0.2.3),整理了本文。

阅读全文

React中封装组件的一些方法

最近参与了一个基于Raact技术栈的项目,距离我上一次在工作中React已经过去了挺长一段时间,因此打算整理在React中封装组件的一些方法。

阅读全文

管理TypeScript项目中的类型声明

说来惭愧,最近才正儿八经地在生产项目中使用TypeScript,遇见一个比较棘手的问题就是:如何管理项目中定义的各种类型声明。

本文将从TS项目和声明方式开始,探究如何解决该问题。

阅读全文

在React中处理埋点公共参数

前端埋点数据收集及上报方案这篇文章中研究了前端项目的数据埋点方案,描述了埋点字段设计、数据收集和数据上报的一些思路,并给出了在Vue中通过自定义指令和全局Mixin实现声明式数据收集的方法。同时在项目中使用一段时间后,总结了一些可以优化的问题。

最近在一个React项目中,打算实现类似的工作,同时解决之前遗留的问题。

阅读全文

infernoJS源码分析

inferno.js是性能最快的前端UI框架之一,Vue3的diff算法貌似也从Vue2的snabbdom实现修改为类似于infernod的实现。

本文主要通过阅读inferno的核心源码,了解其关于通过最长上升子序列优化diff DOM性能的原理。

阅读全文

多项目逻辑复用与monorepo

去年接手了一个新的项目,主要分为了移动端和PC端,在项目初期,两端承担不同的业务职责,在后期迭代过程中,陆续出现了一些相同和相似的业务逻辑,随之而来的是很多相似的代码。回想之前,也经历过类似的场景,比如从一个to B的项目中再拆分一个to C的项目,两个项目具有业务或平台的差异,但也有很多相同的地方。

本文主要研究通过monorepo来处理这种多项目中逻辑复用问题。

阅读全文

snabbdom源码解析

最新在梳理一些前端框架的核心实现,关于diff算法这一块,发现目前大部分文章都是将源码翻译一遍,而关于诸如“为啥要定义多个游标”、”首尾对比”等细节,并没有给出比较好的解释。因此打算整理snabbdom源码,同时回答前面提到的一些问题。

阅读全文