ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

如何把 Tamagui 接入 One 框架?

如何把 Tamagui 接入 One 框架? 如何把 Tamagui 接入 One 框架【免费下载链接】tamaguiStyle React fast with 100% parity on React Native, an optional UI kit, and optimizing compiler.项目地址: https://gitcode.com/GitHub_Trending/ta/tamagui如果你的项目基于 One一个基于 Vite 构建、面向 web、iOS 和 Android 的 React 框架需要引入 Tamagui 的样式系统和组件这篇文档就是完整的接入路径从零创建 One 项目到安装依赖、编写 Tamagui 配置、注册 Vite 插件、挂上 Provider最终在你的页面里渲染出 Tamagui 组件。以下内容取自仓库内的官方指南 One Guide。创建 One 项目并安装依赖如果还没有 One 项目先执行npx one然后在项目目录下添加 Tamagui 及其配置包yarn add tamagui tamagui/config创建 tamagui.config.ts在项目根目录新建tamagui.config.ts内容如下import { defaultConfig } from tamagui/config/v5 import { createTamagui } from tamagui const tamaguiConfig createTamagui(defaultConfig) export default tamaguiConfig // this is important! export type Conf typeof tamaguiConfig declare module tamagui { interface TamaguiCustomConfig extends Conf {} }这里有两点不能省export type Conf这一行源码注释原样标注了this is important!紧随其后的declare module tamagui模块增强它把你的配置类型挂进TamaguiCustomConfig让组件的 props 类型能识别你的 token 与主题定义。配置 vite.config.ts修改项目的vite.config.ts注册 One 的 Vite 插件和 Tamagui 的 Vite 插件import { one } from one/vite import { tamaguiPlugin } from tamagui/vite-plugin import type { UserConfig } from vite export default { plugins: [ one({ web: { defaultRenderMode: ssg, }, }), tamaguiPlugin({ config: ./tamagui.config.ts, components: [tamagui], }), ], // Vite 6 style configuration ssr: { noExternal: true, }, optimizeDeps: { include: [tamagui/core, tamagui/config], }, build: { cssTarget: safari15, }, } satisfies UserConfig各部分的用途tamaguiPlugin({ config, components })config指向上一步创建的配置文件路径components声明被编译的组件包这里是[tamagui]ssr.noExternal: true文档注释标注这是 Vite 6 风格的写法对 SSR 环境生效optimizeDeps.include把tamagui/core和tamagui/config预打包保证这些依赖在 Vite 依赖优化阶段正确进入预构建build.cssTarget: safari15构建产物的 CSS 目标等级。挂载 TamaguiProvider更新根布局文件One 项目中通常是app/_layout.tsx用TamaguiProvider包裹Slotimport { TamaguiProvider } from tamagui import { Slot } from one import config from ../tamagui.config export default function Layout() { return ( TamaguiProvider config{config} Slot / /TamaguiProvider ) }config直接 import 根目录的tamagui.config.tsSlot来自one包用于渲染当前路由的页面。在页面中使用组件并验证接入完成后按文档的示例写一个首页app/index.tsximport { Button, Text, YStack } from tamagui export default function Home() { return ( YStack f{1} jccenter aicenter p$4 gap$4 Text fontSize$6Welcome to Tamagui with One!/Text ButtonClick me/Button /YStack ) }这是文档给出的验证方式页面跑起来后应该看到居中的Welcome to Tamagui with One!文本和一个可点击的Click me按钮说明配置、插件和 Provider 链路全部生效Tamagui 组件已能正常渲染。可选支持浅色与深色主题如果应用要跟随系统切换明暗模式结合 One 内置的 color scheme 支持和 Tamagui 的主题系统把根布局改为import { TamaguiProvider, Theme } from tamagui import { Slot } from one import { useColorScheme } from react-native import config from ../tamagui.config export default function Layout() { const colorScheme useColorScheme() return ( TamaguiProvider config{config} defaultTheme{colorScheme} Theme name{colorScheme} Slot / /Theme /TamaguiProvider ) }useColorScheme来自react-native取到的值同时传给TamaguiProvider的defaultTheme和外层Theme的name。可选生产构建输出 CSS 提升性能文档给出的性能优化手段是在tamaguiPlugin里加outputCSS仅在生产环境生成 CSS 文件tamaguiPlugin({ config: ./tamagui.config.ts, components: [tamagui], outputCSS: process.env.NODE_ENV production ? ./public/tamagui.generated.css : null, })生成后需要在根布局中引入该 CSS 文件import ../public/tamagui.generated.css // ... rest of your imports and component注意outputCSS在开发环境非 production为null即只走插件的运行时提取路径不会产出文件。限制与边界本文所有步骤来自 One 专项指南适用于使用 Vite 的 One 项目ssr.noExternal: true是 Vite 6 的配置写法如果你的 Vite 版本不匹配以 One 框架自身的模板为准。tamagui/config/v5子路径导出对应的是 v5 配置安装命令里的tamagui/config需与配置入口版本一致不要混用其他版本的子路径。接入完成后的样式系统与组件用法继续沿用 Tamagui 的常规文档即可本指南到此结束。【免费下载链接】tamaguiStyle React fast with 100% parity on React Native, an optional UI kit, and optimizing compiler.项目地址: https://gitcode.com/GitHub_Trending/ta/tamagui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表