首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >完结篇!React19+Arco+Zustand仿macOS风格webOS桌面系统

完结篇!React19+Arco+Zustand仿macOS风格webOS桌面系统

原创
作者头像
andy2018
发布2026-08-27 10:20:16
发布2026-08-27 10:20:16
1570
举报
文章被收录于专栏:h5h5

2026年8月实战React19.2+Zustand5+Arco+Sortablejs仿macOS/windows风格网页版os平台系统ReactWebOS

ReactOS支持macoswindow两种桌面风格。

项目技术栈

  • 编辑器:Vscode
  • 技术框架:react^19.2.8+react-router v7+zustand5
  • 组件库:@arco-design/web-react^2.66.16 (字节网页版vue3组件库)
  • 状态管理:zustand^5.0.15
  • 滚屏组件:swiper^14.1.0
  • 拖拽插件:sortablejs^1.15.7
  • 图表组件:echarts^6.1.0
  • 模拟数据:mockjs^1.1.0
  • 构建工具:vite^8.2.0

项目特点

🏆 支持macOS+window两种桌面模式

🚀 全新栅格化桌面菜单

🧩 桌面/Dock菜单支持动态JSON配置

⚡️ 支持桌面菜单和dock菜单自由拖拽排序

⚙️ 支持自定义桌面主题皮肤、毛玻璃模糊质感

🧪 一款os式后台admin管理系统解决方案

项目框架结构

react-os使用vite8构建工具搭建项目模板,采用react hooks编码页面。

项目入口配置

代码语言:actionscript
复制
import '@arco-design/web-react/es/_util/react-19-adapter'
import { createRoot } from 'react-dom/client'
import './style.scss'
import App from './App.jsx'
import '@arco-design/web-react/dist/css/arco.css'

createRoot(document.getElementById('root')).render(
  <App />
)

App.jsx模板

代码语言:actionscript
复制
import { HashRouter } from 'react-router-dom'

import Router, { AuthRouter } from './router'

function App() {
  return (
    <>
      <HashRouter>
        <AuthRouter>
          <Router />
        </AuthRouter>
      </HashRouter>
    </>
  )
}

react-webos桌面栅格模板

桌面自定义菜单变量

代码语言:actionscript
复制
// 自定义桌面变量(图标参数)
const deskVariable = {
  '--icon-radius': '18px', // 圆角
  '--icon-size': '60px', // 图标尺寸
  '--icon-gap-col': '30px', // Y轴间距(左右)
  '--icon-gap-row': '30px', // X轴间距(上下)
  '--icon-labelSize': '12px', // 标签文字大小
  '--icon-labelColor': '#fff', // 标签颜色
  '--icon-fit': 'contain', // 图片图标自适应
}

react-webos桌面布局结构

代码语言:actionscript
复制
/**
 * 桌面布局模板
 * @author andy
*/

import { useMemo } from 'react'
import { appStore } from '@/store/app'

// 引入布局模板
import Macos from './template/macos'
import Windows from './template/windows'

function Desktop() {
  const { config: { layout, skin } } = appStore()

  // 布局模板
  const DeskLayout = useMemo(() => {
    switch (layout) {
      case 'macos':
        return Macos
      case 'windows':
        return Windows
      default:
        return Macos
    }
  }, [layout])

  return (
    <div className='ra__desk-container flex-c' style={{'--themeSkin': skin}} onContextMenu={(e) => e.preventDefault()}>
      <DeskLayout />
    </div>
  )
}

react-os自定义dock菜单

代码语言:actionscript
复制
<div className='ra__macos-dock'>
  <div className={clsx('ra__dock-wrap', dock||'compact')}>
    {
      dockMenu.map((data, key) => (
        <div key={key} className='ra__dock-group'>
          {
            data?.list?.map((item, index) => (
              <div key={index} className='ra__dock-item' onClick={() => handleClickDockMenu(item)}>
                { item.label && <span className='label'>{item.label}</span>}
                {
                  // 二级菜单
                  isArray(item?.children) ?
                  <Trigger
                    trigger='hover'
                    position='top'
                    popupAlign={{ top: 10 }}
                    onVisibleChange={setTriggerVisible}
                    popup={() => (
                      <div className='ra__dock-macpopup'>
                        <Rscroll size={4}>
                          ...
                        </Rscroll>
                      </div>
                    )}
                  >
                    <div className='ra__dock-thumb'>
                      <div className='ra__dock-thumbmenu'>
                        ...
                      </div>
                    </div>
                  </Trigger>
                  :
                  <div className='imgico' style={{background: item?.background, color: item?.color, padding: item?.padding}}>
                    {
                      isImg(item.imgico) ?
                      <img src={item.imgico} />
                      :
                      isObject(item.imgico) ?
                      item.imgico
                      :
                      // iconfont Symbol引用方式
                      <SvgIcon icon={item.imgico} />
                    }
                  </div>
                }
              </div>
            ))
          }
        </div>
      ))
    }
  </div>
</div>

目前react19技术栈开发网页版webos系统已经正式完结,希望以上分享对大家有些帮助!

electron38-vite7-vue3os电脑端os管理系统

最新版electron38-vite7-admin电脑端中后台管理系统

Electron38+Vite7+Pinia3+ElementPlus客户端聊天程序

基于React19+Arco+Zustand5接入DeepSeek-V4网页版仿豆包/Kimi流式AI系统

Vite8.0+Vue3.5+Arco深度对接DeepSeek网页版AI智能助手

uni-app+mphtml快速集成DeepSeek-V4智能ai应用

2026原创自研React19+Vite8+ArcoDesign+Zustand中后台管理系统框架模板

升级款vite8+vue3.5+arcoDesign网页端webOS桌面框架

自研Vite8+NaiveUI+Vue3+Echarts后台管理系统

全新研发Flutter3.41桌面版OS系统

最新款flutter3.41 & dart3.11仿写抖音app

原创自研Flutter3.41+Dio+WindowManager打造桌面版AI问答系统

Flutter3.41实战AI:从零到一构建app版流式ai系统

Electron41 + Vite8打造流式输出客户端AI助手

基于tauri2.8+vite7+vue3+element-plus仿QQ/微信聊天应用

tauri2.9-vite7-vue3admin客户端后台系统管理Exe模板

最新原创uniapp-vue3-osadmin手机版后台管理系统

最新研发uniapp+vue3仿微信app聊天模板

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

目录
  • 项目技术栈
  • 项目特点
  • 项目框架结构
  • 项目入口配置
  • react-webos桌面栅格模板
  • react-webos桌面布局结构
  • react-os自定义dock菜单
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档