若依框架前后端分离Vue如何做自定义的组件

若依框架前后端分离Vue如何做自定义的组件

在vue页面中用到了大量的组件,比如选择用户组件,下面咱们自己做一个组件。就拿用户选择组件作为例子。

1、创建组件WmsUserSelect

在vue项目目录src→components→WmsUserSelect目录下创建该组件目录及index.vue文件。
请添加图片描述

该index.vue文件的详细代码:

<template>
  <el-select placeholder="请选择用户" clearable v-model="customer">
    <el-option
      v-for="customer in userList"
      :key="customer.id"
      :label="customer.nickName"
      :value="customer.userId"
    ></el-option>
  </el-select>
</template>
<script>
import { mapGetters } from 'vuex';
export default {
  props: ['value','size'],
  data() {
    return {

    }
  },
  computed: {
    ...mapGetters(['userList']),
    customer: {
      get() {
        return this.value;
      },
      set(v) {
        this.$emit('input', v);
      }
    }
  },
  created() {
  },
  methods: {
  }
}
</script>

2、userList的配置

这里所说的userList指的是组件WmsUserSelect中的 …mapGetters([‘userList’]),中的关于用户列表配置。

这里用到了store文件夹下的相关文件配置。

2.1、getter.js配置

主要展示与我们例子相关的配置

const getters = {
  // userSelet组件相关
  userList: state => state.wms.userList,
  userMap: state=> state.wms.userMap,
  },

export default getters

2.2 、wms.js配置

主要展示与我们例子相关的配置

import {listUser} from "@/api/system/user";
const state = {
  userList: [],
  userMap: new Map()
}
const mutations = {
  SET_USERS(state, list) {
    state.userList = list;
    state.userMap = new Map();
    list.forEach((user) => {
      state.userMap.set(user.userId, user.nickName)
    })
  },
}
const actions = {
  
  getUser({ commit }) {
    return listUser({}, { page: 0, size: 1000 })
      .then(res => {
        console.log("getUser: ",res);
        const { rows } =res
        commit('SET_USERS', rows);
      })
  },
}
export default {
  namespaced: true,
  state,
  mutations,
  actions
}

2.3、index配置

导入wms.js配置

import Vue from 'vue'
import Vuex from 'vuex'
import app from './modules/app'
import user from './modules/user'
import tagsView from './modules/tagsView'
import permission from './modules/permission'
import settings from './modules/settings'
import getters from './getters'
// wms
import wms from './modules/wms'
import dict from './modules/dict'

Vue.use(Vuex)

const store = new Vuex.Store({
  modules: {
    app,
    user,
    tagsView,
    permission,
    settings,
    dict,
    wms
  },
  getters
})

export default store

3、main.js中配置注册挂载组件

import WmsUserSelect from '@/components/WmsUserSelect'

Vue.component('WmsUserSelect',WmsUserSelect)

4、页面表格中选用该组件

<el-form-item label="测试员" prop="customerId" >
   <WmsUserSelect v-model="form.customerId"></WmsUserSelect>
</el-form-item>

5、效果展示

请添加图片描述

<think>嗯,用户让我介绍一下若依框架前后端分离的网站。首先,我需要确认自己对若依框架的了解是否正确。记得若依是基于Spring Boot和Vue的,前后端分离的权限管理系统,对吧?用户可能想了解这个框架的结构、功能以及适用场景。 用户可能是开发者,可能在寻找一个快速开发的企业级框架,或者想对比其他类似框架如Jeecg。他们可能想知道若依有什么优势,比如模块化、权限管理、代码生成器这些功能。需要详细说明前后端分离的架构,前端用Vue,后端用Spring Boot,通过RESTful API交互。 另外,用户可能关心实际应用,比如如何搭建、有什么核心模块,比如用户管理、角色权限、系统监控等。也许他们还想知道扩展性和社区支持情况,是否有文档和活跃的社区。需要注意解释若依的代码生成器,这对快速开发很有帮助,可能举例子说明使用场景,比如开发企业内部管理系统。 还要考虑用户可能的疑问,比如学习曲线,是否需要熟悉Spring Boot和Vue,或者是否适合新手。可能还需要提到若依的权限控制细粒度,如菜单、按钮、数据权限,这对企业应用很重要。最后,总结适用场景,帮助用户判断是否适合他们的项目需求。</think>若依框架(RuoYi)是一款基于 **Spring Boot + Vue.js** 开发的开源前后端分离快速开发平台,广泛用于构建企业级后台管理系统。其核心设计目标是简化开发流程、提供通用功能模块,并支持高度定制化。以下是其核心特点和应用场景的详细介绍: --- ### **一、技术架构** 1. **前端技术栈**: - **Vue.js**:主流渐进式前端框架组件化开发。 - **Element UI**:基于 Vue 的 UI 组件库,提供丰富的界面元素。 - **Axios**:处理 HTTP 请求,与后端 API 交互。 - **Vue Router & Vuex**:实现路由管理和状态管理。 2. **后端技术栈**: - **Spring Boot**:快速构建微服务架构的后端。 - **MyBatis/MyBatis-Plus**:数据库 ORM 框架,简化 SQL 操作。 - **Shiro/Spring Security**:安全框架,负责权限认证与授权。 - **Redis**:缓存支持,提升系统性能。 - **MySQL**:默认数据库,支持切换其他关系型数据库。 3. **前后端交互**: - 通过 **RESTful API** 通信,前端通过 `axios` 发起请求,后端返回 JSON 数据。 - 使用 **JWT(JSON Web Token)** 或 **Session** 进行身份验证。 --- ### **二、核心功能模块** 1. **权限管理**: - 用户、角色、菜单权限的细粒度控制(支持按钮级、数据级权限)。 - 动态路由配置,根据角色生成可访问的菜单。 2. **系统监控**: - 服务器状态监控(CPU、内存、磁盘等)。 - 操作日志记录与审计,追踪用户行为。 - 定时任务调度(集成Quartz)。 3. **代码生成器**: - 自动生成前后端基础代码(Entity、Mapper、Service、Controller、Vue 页面等)。 - 支持自定义模板,减少重复编码工作。 4. **其他通用功能**: - 文件上传/下载、Excel 导入导出。 - 多数据源配置、国际化支持。 - 系统参数配置、字典管理。 --- ### **三、前后端分离的优势** 1. **开发效率高**: - 前后端并行开发,通过 API 文档约定接口,降低耦合。 - 代码生成器快速生成 CRUD 功能模块。 2. **性能优化**: - 前端静态资源通过 Nginx 部署,减轻服务器压力。 - 后端微服务化,支持分布式扩展。 3. **维护便捷**: - 前端与后端独立升级,互不影响。 - 清晰的代码结构,适合团队协作。 --- ### **四、适用场景** - **企业内部管理系统**:如 OA、ERP、CRM 等。 - **快速原型开发**:中小型项目快速落地。 - **权限复杂场景**:需要灵活控制角色和数据的系统。 --- ### **五、学习与部署** 1. **官方资源**: - 代码仓库:[Gitee](https://gitee.com/y_project/RuoYi-Vue) | [GitHub](https://github.com/yangzongzhuan/RuoYi-Vue) - 文档:[在线文档](http://doc.ruoyi.vip/) 2. **部署流程**: - 后端:导入 Spring Boot 项目,配置数据库和 Redis,启动主类。 - 前端:安装 Node.js,通过 `npm install` 安装依赖,运行 `npm run dev` 调试。 --- ### **六、对比同类框架** 与 **JeecgBoot**、**SpringBlade** 等框架类似,但若依的优势在于: - 代码简洁易读,适合二次开发。 - 社区活跃,中文文档完善。 - 模块化设计,可按需裁剪功能。 --- 若依框架适合有一定 Java 和 Vue 基础的开发者快速搭建后台系统,其开箱即用的特性可大幅缩短项目周期。如需深入定制,需熟悉其源码结构和扩展机制。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值