跳到主要内容

新手指南约 5 分钟

快速开始

用三行命令创建第一个 GPUIX 应用:用 TypeScript 编写 React 组件树,由 GPUI 通过 Metal、DirectX 或 Vulkan 绘制。

React 与 Solid 可以用于 GPUI —— Zed 的 GPU UI 框架。

用 TypeScript 编写 React 或 Solid 组件树。GPUIX 使用 Metal、DirectX 或 Vulkan 将其绘制出来。没有 Electron,也没有 WebView。

useState 与 JSX 依旧可用。布局、文本与输入都经由 GPUI 处理,而非 DOM。

三行命令

通过官方示例创建一个应用。该命令只会下载 example-app/ 并安装它的依赖。无需克隆仓库、原生构建或安装 Rust 工具链。

bunx @gpuix/cli new my-app
cd my-app
bun run dev

@gpuix/react 会拉取对应你平台的原生渲染器。编辑 app.tsx,运行中的窗口会在保存时重新挂载。点击与键盘处理器会切换到新的组件树,而无需重建窗口。

第一个应用长什么样

整个应用就是一个 app.tsx。useState、事件处理器与内联样式都和 React 里一样:

import { useState } from 'react'
import { render } from '@gpuix/react'

function App() {
  const [count, setCount] = useState(0)
  return (
    <div style={{ padding: 24, backgroundColor: '#1a1a1a', height: '100%' }}>
      <div
        onClick={() => setCount((c) => c + 1)}
        style={{
          padding: 12,
          borderRadius: 8,
          cursor: 'pointer',
          backgroundColor: '#232323',
          hover: { backgroundColor: '#2c2c2c' },
        }}
      >
        <text style={{ color: '#e2e2e2' }}>Count: {count}</text>
      </div>
    </div>
  )
}

render(<App />, { title: 'My App', width: 800, height: 600 })

以 bun --hot 运行它:

bun --hot app.tsx

使用 bun --hot,而不是普通的 bun。这样保存时会在同一个窗口上重新挂载 React,而非打开第二个窗口。

接下来

目标 页面
不想要示例应用,自己装依赖 从零开始构建
看运行起来的应用长什么样 示例
理解它为什么能跑起来 架构
打包成可分发的 App 打包成带图标的 App