App 渲染共享视图
导航、状态展示与全局控件只需在 App 中编写一次,便会作为共享视图持续包裹每个页面。切换页面时,App 始终保持原位。
- 共享视图只写一次导航、全局控件由 App 统一渲染
- 页面自然切换每个页面仍是 App 的 children
- 状态持续保留Context、Hooks 与生命周期不会重建
DAILY RHYTHM
今天也向前一点
保留节奏,也留一点时间给自己。
WEEKEND PICKS
去有风的地方
三条适合周末散步的绿色路线。
林小满
把日子过成喜欢的样子。
滑动页面,或点击卡片和底部 Tab
状态原地保留
修改任意深度的 React 组件,VPT 会把最小更新送进小程序开发者工具。当前页面、表单输入和组件状态继续留在原位。
- ✓ 深层 React 组件即时更新
- ✓ App、页面与输入状态保留
- ✓ Tailwind 样式同步刷新
动态导入,自动分包
像 Web 应用一样组织源码。VPT 沿着模块图识别同步启动链与按需边界,再自动生成符合微信、支付宝与抖音限制的主包和分包。
一次动态导入
- 依赖分析
- 体积计算
- 资源类别
- 动态边界
- 拆包合并
依赖自动拆包
Tailwind,直达小程序
让 AI 编写 Tailwind className,VPT 自动适配微信、支付宝、抖音小程序与 Web。
01import { View, Text } from 'virtual:taro/components'
02
03export function Dashboard() {
04 return (
05 <View className="min-h-screen bg-[#f4f7ec] p-5">
06 <View className="flex items-center justify-between">
07 <View>
08 <Text className="block text-xs text-slate-500">早上好</Text>
09 <Text className="mt-1 block text-2xl font-semibold">今天也向前一点</Text>
10 </View>
11 <Text className="text-lg font-semibold text-emerald-950">VPT</Text>
12 </View>
13 <View className="mt-5 rounded-3xl bg-emerald-900 p-6 text-white shadow-xl">
14 <Text className="text-xs uppercase tracking-widest text-emerald-200">今日步数</Text>
15 <Text className="mt-3 block text-4xl font-semibold">12,680</Text>
16 <Text className="mt-2 block text-xs text-emerald-200/70">目标 16,000 步</Text>
17 <View className="mt-6 h-2 overflow-hidden rounded-full bg-white/20">
18 <View className="h-full w-3/4 rounded-full bg-lime-300" />
19 </View>
20 </View>
21 <View className="mt-4 flex gap-3">
22 {useStats().map(({ label, value, unit }) => (
23 <View className="flex-1 rounded-2xl bg-white p-4 ring-1 ring-emerald-900/10">
24 <Text className="block text-xs text-slate-500">{label}</Text>
25 <Text className="mt-2 block text-xl font-semibold">{value} {unit}</Text>
26 </View>
27 ))}
28 </View>
29 <ActivityChart className="mt-4 rounded-2xl bg-white p-4" />
30 </View>
31 )
32}早上好
今天也向前一点
已完成 79%↗ 12%
React 与原生组件,双向直连
用 TypeScript 声明属性与事件。VPT 自动注册、复制并分配原生资源,让 React 数据与微信、支付宝、抖音小程序的原生事件自然往返。
点击原生按钮,观察事件回到 React
import { defineNativeComponent } from 'virtual:taro/native'
type CounterProps = {
count: number
onDecrement: () => void
onIncrement: () => void
}
export const NativeCounter = defineNativeComponent<CounterProps>(
() => import('./native-counter/counter.js')
)
<NativeCounter
count={count}
onDecrement={() => setCount(count - 1)}
onIncrement={() => setCount(count + 1)}
/>为现代小程序开发而生
熟悉的 React 开发方式,一份源码覆盖微信、支付宝、抖音小程序与 Web,不再被传统工具链拖慢。
Vite 8
由 Vite 8 和 Rolldown 驱动开发与生产构建,带来快速启动、增量构建和现代前端工具链。
React 19
以 React 19 运行 App、页面和组件,直接使用 Hooks、Suspense 与 React.lazy()。
小程序开发热更新
基于 Vite 模块图和 React Refresh,为微信、支付宝与抖音小程序提供状态保留热更新;各平台模式与验证范围见热更新指南。
全自动分包
动态 import() 探索加载边界,自动规划主包与分包,应用层不再关心单包 2M 限制。
Web 标准 API
继续使用熟悉的 Web 标准,在一份 React 源码中连接微信、支付宝、抖音小程序和 Web。
小程序原生组件
微信、支付宝与抖音原生组件均可和 React 双向调用,并自然参与全自动分包,无需维护额外的胶水层。
Skyline 渲染模式
支持全局或按页面启用 Skyline,让复杂交互获得更流畅、更稳定的渲染体验。
Tailwind CSS v4
默认模板开箱即用,候选类和样式输出自动适配微信、支付宝、抖音小程序与 Web。
100% 测试覆盖
覆盖编译、分包、热更新、样式生成与运行时边界;大量单元测试和回归用例让每次迭代都有可靠保障。
赞助
VPT 由 weapp.dev 赞助,感谢赞助者对开源开发的支持。
weapp.dev 致力于为小程序与 Web 构建开放、可组合的现代工具链。