RuoYi、Vue CLI 和 uni-app 结合构建跨端全家桶方案

将 RuoYi、Vue CLI 和 uni-app 结合构建跨端全家桶方案,可以实现一套代码管理后台系统(PC)和移动端应用(H5/小程序/App)。以下是整合思路和关键步骤:


技术栈分工

  1. RuoYi:后端框架(Spring Boot + MyBatis)

  2. Vue CLI:PC 管理后台前端(基于 Vue 2 + Element UI)

  3. uni-app:移动端应用(一套代码编译到 H5/小程序/App)


整体架构

关键实现步骤

1. 后端统一 API 服务
  • 使用 RuoYi 提供 RESTful API

  • 配置跨域支持(PC 和移动端共享 API)

2. PC 管理后台(Vue CLI)
  • 基于 RuoYi-Vue 项目(GitHub

  • 技术栈:Vue 2 + Vuex + Vue Router + Element UI

3. PC 前端(Vue CLI)
  • 基于 RuoYi-Vue 项目(GitHub

  • 技术栈:Vue 2 + Vuex + Vue Router + Element UI+Bootstrap

4. 移动端(uni-app)
  • 安卓

  • 苹果

  • 小程序


多端适配技巧

  1. 条件编译

    复制代码
    // #ifdef H5
    console.log('仅在H5生效')
    // #endif
    
    // #ifdef MP-WEIXIN
    console.log('仅在微信小程序生效')
    // #endif
  2. UI 组件库选择

    • PC:Element UI(Vue CLI)

    • 移动端:uni-app 官方组件 或 uView UI

  3. 路由管理

    • PC:Vue Router(支持嵌套路由)

    • uni-app:内置路由(pages.json 配置)


部署方案

  1. 后端

    • RuoYi 打包为 JAR 部署到服务器

    • Nginx 配置:

      复制代码
      server {
        listen 80;
        server_name api.yourdomain.com;
        location / {
          proxy_pass http://localhost:8080;
        }
      }
  2. PC 前端

    复制代码
    npm run build
    # 部署 dist 目录到 Nginx
  3. uni-app 多端发布

    • H5:npm run build:h5

    • 微信小程序:npm run dev:mp-weixin (用微信开发者工具打开)

    • App:通过 HBuilderX 云打包


常见问题解决

  1. 跨域问题

    • 开发环境:配置 vue.config.js 代理

      复制代码
      devServer: {
        proxy: {
          '/api': {
            target: 'http://localhost:8080',
            changeOrigin: true
          }
        }
      }
    • 生产环境:Nginx 反向代理

  2. 样式冲突

    • PC 和移动端使用独立项目

    • 全局样式通过 @import 引入时添加 scoped

  3. 权限同步

    • 共用 RuoYi 的 RBAC 权限体系

    • 前端路由权限通过接口动态生

通过以上方案,可构建企业级应用:

  • PC 端:复杂数据管理(Element UI 表格/表单)

  • 移动端:轻量级操作(uni-app 跨端能力)

  • 后端:统一数据源和权限控制(RuoYi 成熟架构)

相关推荐
xhxxx13 小时前
prototype 是遗产,proto 是族谱:一文吃透 JS 原型链
前端·javascript
S***H28313 小时前
Vue语音识别案例
前端·vue.js·语音识别
涔溪13 小时前
通过Nginx反向代理配置连接多个后端服务器
vue.js·nginx
蚂蚁集团数据体验技术14 小时前
一个可以补充 Mermaid 的可视化组件库 Infographic
前端·javascript·llm
华仔啊14 小时前
还在用 WebSocket 做实时通信?SSE 可能更简单
前端·javascript
_AaronWong15 小时前
基于 Vue 3 的屏幕音频捕获实现:从原理到实践
前端·vue.js·音视频开发
木易士心15 小时前
深入剖析:按下 F5 后,浏览器前端究竟发生了什么?
前端·javascript
在掘金8011015 小时前
vue3中使用medium-zoom
前端·vue.js
xump16 小时前
如何在DevTools选中调试一个实时交互才能显示的元素样式
前端·javascript·css
Front_Yue16 小时前
深入探究跨域请求及其解决方案
前端·javascript