Skip to content

Instantly share code, notes, and snippets.

View teabyii's full-sized avatar
💭
I may be slow to respond.

Kent Li teabyii

💭
I may be slow to respond.
View GitHub Profile
@teabyii
teabyii / riotjs.md
Last active August 23, 2017 13:40
riotjs 源码阅读记录

Riot 源码阅读笔记

官网:https://muut.com/riotjs/

第一次看到 Riot,感觉就是惊艳。我对 React 不大了解,只是简单知道一些,所以在我看来,React 实现的一些东西,Riot 也可以实现,而且代码精简,麻雀虽小,五脏俱全,可以用很简单的语法创建类似 web component 的自定义标签,渲染的性能好像还不赖。

注:不支持自定义标签的浏览器需要手动创建标签,如 [demo/index.html]

整体实现思路

{"sig":"0ce736f15f981be6f8bd16081ebd4adbd5d3d90ad61ec5af3865079f0722abacdd996399c0940ba711d8bb234e5702a5b5332d1ac474f2ae14795c3a164383271","msghash":"32213167cc4689a6350d08da5a5809d73a9cb655bfb7846aed4222d63960aa3f"}
@teabyii
teabyii / Riot-compiler.md
Last active November 15, 2018 09:11
Riot-compiler 代码的简单解读

Riot 源码阅读笔记 -- compiler

关于 Riot 的 compiler,具体请见:[Riot compiler]

之前在 [Riot 源码阅读笔记] 中提到另挖坑来聊聊 Riot 提供的 template + logic compiler 是怎么干活的,于是有了这一篇文章... (其实大部分都是正则,正则)

Riot 提供了两种方式,分别是 pre-compile 和直接在页面使用 script[type="riot/tag"],都是用的同一个 compiler 来处理代码的解析,在真实环境时推荐使用 pre-compile 的方式。

在页面使用 script[type="riot/tag", src="path"] 和 React 在页面使用 script[type="text/jsx", src="path"] 一样,都是用了 ajax 来请求文件内容,跨域就拜拜了,请知悉。

#!/bin/sh
git filter-branch --env-filter '
an="$GIT_AUTHOR_NAME"
am="$GIT_AUTHOR_EMAIL"
cn="$GIT_COMMITTER_NAME"
cm="$GIT_COMMITTER_EMAIL"
if [ "$GIT_COMMITTER_EMAIL" = "[Your Old Email]" ]
import "dart:async";
void main() {
run();
}
Future<void> run() async {
int count = 0;
final timer = Timer.periodic(Duration(seconds:1), (timer) {
print(count++);