使用 Next.js 13 的 RSC 重写了个人站点 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
tukon479
V2EX    程序员

使用 Next.js 13 的 RSC 重写了个人站点

  •  2
     
  •   tukon479
    innei 2023-07-30 16:12:55 +08:00 4068 次点击
    这是一个创建于 871 天前的主题,其中的信息可能已经有所发展或是发生改变。
    花了点时间把原本被人称为很二次元风格的个人站点重写了,刚好试试 Next.js 13 的 App Router ,然后尝试了一种新的简洁风。有优秀的 SEO 性能,并在 LightHouse 中 Performance > 90%,Best practice > 90%。

    技术栈除了 Next.js 之外,还用了 Framer motion ,Radix ,Tailwind ,Jotai 。

    已经开源欢迎锐评。

    Repo: https://github.com/Innei/Shiro

    Preview: https://innei.in
    40 条回复    2023-07-31 22:40:17 +08:00
    haolongsun
        1
    haolongsun  
       2023-07-30 16:31:09 +08:00
    tql,不过状态信息怎么实现的呀,就当前能知道正在做什么这个,是本地有一个监控程序?
    tukon479
        2
    tukon479  
    OP
       2023-07-30 16:39:18 +08:00
    @haolongsun 有个上报程序,简单用 swift 写了一个
    wmwm
        3
    wmwm  
       2023-07-30 16:57:17 +08:00
    UI 做的实在是好看。我也是用 nextjs13 app router 写的 https://wmwm.me ,界面没你这么炫酷。图床是用 minio 搭建的,用户注册时的邮箱验证码是用 docker-mailserver 搭建的,评论系统是基于 mariadb 数据库搭建的,markdown 的解析用的是 unified.js
    x77
        4
    x77  
       2023-07-30 17:07:10 +08:00
    简历也放?
    ChrisFreeMan
        5
    ChrisFreeMan  
       2023-07-30 17:07:21 +08:00
    简约美观
    zsj1029
        6
    zsj1029  
       2023-07-30 17:09:39 +08:00 via iPhone   1
    已 star 非常棒,最佳实践很难得,学习一下
    tukon479
        7
    tukon479  
    OP
       2023-07-30 17:14:28 +08:00
    @zsj1029 感谢
    knightdf
        8
    knightdf  
       2023-07-30 17:45:29 +08:00
    后端仔表示真牛逼
    tyzandhr
        9
    tyzandhr  
       2023-07-30 19:27:50 +08:00   1
    捉虫:
    https://innei.in/about#性格属性 中,“体制弱者”应为“体育弱者”
    https://innei.in/about#兴趣爱好 中,“二次元傻 ruan”应为“二次元傻 luan”
    theprimone
        10
    theprimone  
       2023-07-30 19:56:30 +08:00
    点击切换主题之后的变化有点秀啊,看了下代码,见都没见过的 API
    Xusually
        11
    Xusually  
       2023-07-30 20:21:45 +08:00   1
    捉虫:
    https://status.innei.in/status/main
    最下面
    WebDva -> WebDav
    chenzhe
        12
    chenzhe  
    PRO
       2023-07-30 20:42:41 +08:00   1
    别的地方点击切换页面之后都没遇到这个问题,在导航栏点完 [手记] 之后,无法只用浏览器的前进或后台来切换页面。
    tukon479
        13
    tukon479  
    OP
       2023-07-30 20:53:6 +08:00
    @tyzandhr 感谢指出已改正
    tukon479
        14
    tukon479  
    OP
       2023-07-30 20:58:37 +08:00
    @chenzhe 感谢反馈
    lemayi
        15
    lemayi  
       2023-07-30 21:44:15 +08:00   1
    非常棒的最佳实践代码!感谢 OP !
    tukon479
        16
    tukon479  
    OP
       2023-07-30 22:20:24 +08:00
    @theprimone 实验性的 API 从 vitepress ~~抄的~~
    zkaip
        17
    zkaip  
       2023-07-30 22:39:53 +08:00
    马克,共同学习。
    rus4db
        18
    rus4db  
       2023-07-30 22:49:39 +08:00
    好看
    Keyblade
        19
    Keyblade  
       2023-07-30 23:13:20 +08:00   1
    https://laobinghu.top/
    这个怎么跟你的长得一模一样的..
    Keyblade
        20
    Keyblade  
       2023-07-30 23:16:16 +08:00
    @Keyblade #19 对不起没仔细看,才看到楼主是主题作者..分享了的
    Promisei
        21
    Promisei  
       2023-07-30 23:18:20 +08:00
    请问一下大佬们,你们博客的 UI 设计是怎么想出来的,我自己也想做一个,但就是 Ui 界面没有头绪
    tukon479
        22
    tukon479  
    OP
       2023-07-30 23:43:45 +08:00
    @Promisei 抄就对了
    fxixixixixi
        23
    fxixixixixi  
       2023-07-30 23:46:42 +08:00
    好看好看,我想借鉴借鉴
    cyberpoint
        24
    cyberpoint  
       2023-07-30 23:55:05 +08:00
    请教个问题。jotai 的状态怎么在 react 外部修改和清除。我看新的官网文档写了可以在外部操作了。但是具体方法没找到。
    yemoluo
        25
    yemoluo  
       2023-07-31 08:32:55 +08:00
    部署的时候用的什么套件?我也想做一个,就是还没下定决心要怎么部署
    hua123s
        26
    hua123s  
       2023-07-31 09:39:44 +08:00   1
    codenotkey
        27
    codenotkey  
       2023-07-31 09:45:12 +08:00   1
    好像有点交互小问题,复现方法。
    1.点开一篇文章(弹出了文章 dialog ),
    2.使用带有快速前进和返回的鼠标,url 在变化,
    3.但 dialog 挡住了页面,
    K332
        28
    K332  
       2023-07-31 10:14:04 +08:00
    说个无伤大雅的小 bug,手记那一页左侧的导航栏如果快速划过,会让赞助码卡在页面上(是彩蛋吗).
    友链是比较吸引我的点,只要关注一个就不用到处去关注每个人的个人博客了(个人博客资源站?似乎可行)
    tukon479
        29
    tukon479  
    OP
       2023-07-31 12:06:02 +08:00
    @GTim 直接 vercel 把
    tukon479
        30
    tukon479  
    OP
       2023-07-31 12:07:05 +08:00
    @K332 移到那个咖啡的 button 上会消失。快速移动的时候好像没有感知到 mouseleave 事件
    tukon479
        31
    tukon479  
    OP
       2023-07-31 12:07:39 +08:00
    @codenotkey 啊 感谢反馈
    tukon479
        32
    tukon479  
    OP
       2023-07-31 12:23:16 +08:00   1
    kisnows
        33
    kisnows  
       2023-07-31 13:27:27 +08:00
    @tukon479 博主评论系统怎么解决的,自己存储吗
    sechi
        34
    sechi  
       2023-07-31 13:49:22 +08:00
    最下面的实时在线人数有 bug ,复现流程未知。似乎接收到新数据后旧数据并没有清除,而是直接插在了后面。
    zoeliu
        35
    zoeliu  
       2023-07-31 14:19:06 +08:00
    这个透明的代码块预览很喜欢~~~ 感觉一点儿也不割裂

    另外 4k 以上屏幕看起来字体小了些
    tukon479
        36
    tukon479  
    OP
       2023-07-31 14:25:20 +08:00
    @sechi 这是 framer motion 的 bug ,现在没有解。
    tukon479
        37
    tukon479  
    OP
       2023-07-31 14:26:13 +08:00
    @zoeliu 14 号太小了么,我现在用的 5K 的屏倒是感觉还好?
    tukon479
        38
    tukon479  
    OP
       2023-07-31 14:31:26 +08:00
    @kisnows 自己写的,写的比较烂,两年前的代码了,最近像把服务端也重写了
    theprimone
        39
    theprimone  
       2023-07-31 21:00:42 +08:00
    theprimone
        40
    theprimone  
       2023-07-31 22:40:17 +08:00
    分享一下,抄了,切起来真上头 https://tailwind-nextjs-typescript-starter-blog-yuns.vercel.app/
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2912 人在线         Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 31ms UTC 14:12 PVG 22:12 LAX 06:12 JFK 09:12
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86