欢迎!“butterandfly's Playground”是一个我用来放置各种教程、文章及各种试验性想法的地方。
这篇文章里,我将会阐述我是用了哪些工具及技术,来构建这么一个“游乐场”的。
原谅我用了如此高大上的标题,毕竟这网站实在没什么架构可言:
在这里我必须表达下我对next.js的喜爱。它和Vercel让一个网站的搭建变得极其简单。
该网站的代码,主要都是用React来编写。
我对React的喜欢,是远远小于对Web Components的。但因为next.js依赖于React,而React本身也的确有很多可取之处:
这些都使得编写一般/简单的组件时的心智负担会大大降低。同时React拥有非常良好的生态,例如在这网站里就使用了:
不过以后可能会将一些组件改成Web Components。
使用React最麻烦的地方,就是其没有原生的 scoped CSS 支持。可选的解决方案很多:
这里我选用的是next.js提供的,编写体验也最接近lit的styled-jsx。
一个组件的代码看起来大概这样子:
export default function Comp() {
return <div className="root">
<h1 title="">Hi There!</h1>
<style jsx>{`
.root {
border: 1px solid lightgray;
padding: 16px 8px;
border-radius: 5px;
margin-top: 16px;
}
.title {
color: seagreen;
}
`}</style>
</div>;
}
项目里的教程,都用到了类MDx的文档格式来编写。选择类MDx的理由是:
只要是需要维护的js项目,我都会typescript来写:
暂时只用Jest做必要的单元测试。