image.png

🚀 Develop & Ship

Midway Hooks 是下一代的云端一体应用研发方案。通过 Serverless + Hooks + 一体化 Api 调用的特性,开发者在研发流程中仅需关注业务逻辑,即可高效完成应用的交付。

✨ 特性

  • ☁️ 全栈,在 src 目录中开发前后端代码
  • 🌈 极其简单的后端 Api 开发与调用方式
  • 🌍 使用 “React Hooks” 开发后端
  • 📦 跨前端框架. 支持 React / Vue3 / ICE.js
  • ⚙️ 基于 Midway, 提供 Web 及 Serverless 场景下的完整支持.
  • 🛡 完善的 TypeScript 支持

🌰 Demo

从后端导入代码并调用

backend api

  1. export async function get() {
  2. return 'Hello Midway Hooks'
  3. }
  4. export async function post(name: string) {
  5. return 'Hello ' + name
  6. }

frontend

  1. import { get, post } from './apis/lambda'
  2. /**
  3. * @method GET
  4. * @url /api/get
  5. */
  6. get().then((message) => {
  7. // Display: Hello Midway Hooks
  8. console.log(message)
  9. })
  10. /**
  11. * @method POST
  12. * @url /api/post
  13. * @body { args: ['github'] }
  14. */
  15. post('github').then((message) => {
  16. // Display: Hello github
  17. console.log(message)
  18. })

Hooks

backend api

  1. import { useContext } from '@midwayjs/hooks'
  2. export async function getPath() {
  3. const ctx = useContext()
  4. return ctx.path
  5. }

frontend

  1. import { getPath } from './apis/lambda'
  2. /**
  3. * @method GET
  4. * @url /api/getPath
  5. */
  6. getPath().then((path) => {
  7. // Display: /api/getPath
  8. console.log(path)
  9. })

🚀 快速开始

请先安装 faas-cli.

  1. npm i @midwayjs/faas-cli -g

创建

React

  1. f create --template-package=@midwayjs-examples/midway-hooks-react

Vue

  1. $ f create --template-package=@midwayjs-examples/midway-hooks-vue3

ICE.js

  1. $ npm init ice ice-app --template @icedesign/scaffold-midway-faas

运行

  1. npm start

部署

  1. f deploy

📚 更多

请查看完整的文档:https://www.yuque.com/midwayjs/faas/hooks

image.png