Hono与Honox一次尝试

Hono与Honox一次尝试

最近心血来潮,尝试着用Hono和Honox写了一个简单的Web应用。但是我被折磨了一顿😣。最近看到了hono+cloudflare搭建一个接口服务还是很有趣的,本想着用来搭建一个图床的服务,突然看到官网hono中可以编写jsx组件,于是来的兴趣准备尝试尝试。

Hono是一个用于Node.js的Web框架,而Honox是Hono的实验性版本,旨在提供更好的性能和更现代的API。我尝试着用Hono和Honox写了一个简单的Web应用,结果出乎意料的好。Honox的性能比Hono更好,API也更现代,推荐给大家。

环境准备

  1. 安装Node.js和npm
  2. 创建一个新项目
  3. 安装Hono和Honox
  4. 配置D1数据库本地用SqlLite代替
  5. 部署cloudflare workers先把项目跑起来😊

以上的操作都没有问题,一切看起来如此的顺利😊。

槽点一

honox的文档写得不够详细,很多地方都看不太懂。

tsx 复制代码
// app/routes/index.tsx
// `createRoute()` helps you create handlers
import { createRoute } from 'honox/factory'

export default createRoute((c) => {
  return c.render(
    <div>
      <h1>Hello!</h1>
    </div>
  )
})

以上代码createRoute内不支持react运行时语法,比如:useEffect语法无法使用,只能使用honoxjsx语法。在请求数据的时候的时候我还傻傻的在useEffect中写fetch请求数据,结果可想而知, honox中没有useEffect,也没有useState,有的只是c.requestc.render。而正确的做法是直接调用DB的服务查询数据,直接在服务端渲染。其实这也是陷入了ssr的陷阱。但这种模式更像是传统的后端开发中前后端不分离的一种架构方式

槽点二

jwt中间件失效,按照官方文件所言在hono的是可以直接拦截鉴权逻辑的,但是在honox中却是失效的需要honox还在beta版本中的原有一些hono的配套的中间件还没有完全支持,所有我有自己写了一个鉴权的中间件逻辑

槽点三

没有配套的ui组件库,比如antdelement等,所有需要自己写样式或者使用honoxjsx语法自己写组件 不过还好他支持tailwindcss

总结

Honox都还处于beta版本,还有很多功能没有完善,但是总体来说,Honox确实为hono提供了更优雅的ui组件编写方式,结合了jsx,融入了react的语法,让后端模板语法写起来更加优雅。但是尝鲜毕竟只是尝鲜,实际生产中需要使用ssr还是推荐使用nuxt.js或者next.jshono我也推荐只是用在一些小项目或者实验性项目中。尝鲜网址 图床

相关推荐
一条泥憨鱼几秒前
Stream流-从进阶到起飞
java·ide·后端·stream
七夜zippoe2 分钟前
OpenClaw Chrome 扩展:Browser Relay 配置
前端·chrome·openclaw·brower
之歆11 分钟前
DAY_12JavaScript DOM 完全指南(三):高级工程篇
开发语言·前端·javascript·ecmascript
小江的记录本12 分钟前
【Java基础】Java 8-21新特性 :JDK17:密封类、模式匹配、Record类(附《思维导图》+《面试高频考点清单》)
java·数据结构·后端·python·mysql·面试·职场和发展
来恩100316 分钟前
EL表达式应用
前端·javascript·vue.js
希冀12316 分钟前
【CSS学习第十篇】
前端·css
Mahir0819 分钟前
Spring 核心原理:IoC/DI 与 Bean 生命周期全景解析
java·后端·spring·面试·bean生命周期·控制反转ioc·依赖注入di
weixin_4896900220 分钟前
NAS部署实测:Solon vs Spring Boot,从内存到包体积的“降维打击”
java·spring boot·后端
小飞侠是个胖子25 分钟前
在 WebGL 中构建高性能 3D 沉浸式系统的三套高阶方案
前端·3d
枕星而眠26 分钟前
数据结构哈希表(散列表)超详细总结
c语言·数据结构·后端·散列表