Vue用户管理(增删改查)功能总结

简介: Vue用户管理(增删改查)功能总结

1、向api请求发出查询用户列表数据,渲染表单数据


  • 1、定义查询参数列表对象queryInfo:{}
  queryInfo: {
    query: '',  //  查询
    pagenum: 1, //  当前页数
    pagesize: 2,//  当前每页显示多少条数据
  }
  • 2、定义userList:[]数组,和total整数,来存放查询后的用户数据


userList: [],
total: 0,


3、定义getUserList()函数,通过向api发出get请求获取用户数据,返回{ data: res }结果,通过res.meta.status判断是否查询成功,成功之后,把res.data.users用户数据传给userList:[]数组,把res.data.total查询总数传给total整数

async getUserList() {
  const { data: res } = await this.$http.get('users', {
    params: this.queryInfo,
  })
  if (res.meta.status !== 200) return this.$message.error('数据获取失败')
  this.userList = res.data.users
  this.total = res.data.total
  console.log(res)
},
  • 4、注意,在html渲染前就要启动getUserList()方法


created() {this.getUserList()}


5、最后,通过:data="userList"动态绑定数据源,prop="username"绑定数据中的字段名,即可渲染table表单

      <el-table :data="userList" border stripe>
        <el-table-column type="index"></el-table-column>
        <el-tableColumn label="姓名" prop="username"></el-tableColumn>
        <el-tableColumn label="邮箱" prop="email"></el-tableColumn>
        <el-tableColumn label="电话" prop="mobile"></el-tableColumn>
        <el-tableColumn label="角色" prop="role_name"></el-tableColumn>
        <el-tableColumn label="状态"> </el-tableColumn>
        <el-tableColumn label="操作" width="180px"> </el-tableColumn>
      </el-table>

2、通过v-model绑定查询数据,进行表单信息查询


  • 1、在input输入框中通过v-model绑定已经定义好的queryInfo对象的query属性,用来传参
  <el-input  placeholder="请输入内容"  v-model="queryInfo.query"></el-input>
  • 2、在button按钮中通过@click绑定已经定义好的getUserList方法,来查询用户信息


<el-button  slot="append"  icon="el-icon-search"  @click="getUserList" ></el-button>


  • 3、在input输入框中添加clearable属性,用来清除查询数据,再通过@clear="getUserList",清除数据之后,绑定getUserList方法重新查询数据
<el-input  placeholder="请输入内容"   v-model="queryInfo.query"  clearable  @clear="getUserList">


3、通过改变布尔值,来控制打开取消添加用户对话框


  • 1、定义addDialogVisible布尔值来控制添加用户对话框的显示与隐藏,默认为false,不打开;true为打开


addDialogVisible: false


  • 2、在button按钮中绑定@click="addDialogVisible = true",把addDialogVisible变为true,打开添加用户对话框


<el-button type="primary" @click="addDialogVisible = true"
            >添加用户</el-button
          >


  • 3、在dialog对话框中通过:visible.sync="addDialogVisible"监听addDialogVisible布尔值是否为true,打开添加用户对话框,为false,关闭用户对话框
<el-dialog  title="添加用户"  :visible.sync="addDialogVisible"  width="50%"></el-dialog>
  • 4、在dialog对话框中的取消按钮中绑定@click="addDialogVisible = false",关闭用户对话框


<el-button @click="addDialogVisible = false">取 消</el-button>


4、通过动态绑定current-page和page-size,再绑定触发事件,查询指定多少条数据,进行数据分页


  • 1、通过:current-page="queryInfo.pagenum":page-size="queryInfo.pagesize":total="total"动态绑定current-page页条数、page-size页码和total查询页数
  <el-pagination
    @size-change="handleSizeChange"
    @current-change="handleCurrentChange"
    :current-page="queryInfo.pagenum"
    :page-sizes="[1, 5, 10, 20]"
    :page-size="queryInfo.pagesize"
    layout="total, sizes, prev, pager, next, jumper"
    :total="total"
  >
  </el-pagination>


  • 2、定义handleSizeChange(newSize)handleCurrentChange(newPage)方法来监听页条数和页码
// 监听pageSize改变的事件
handleSizeChange(newSize) {
      this.queryInfo.pagesize = newSize
      this.getUserList()
    },
// 监听page页码值改变的事件
handleCurrentChange(newPage) {
      this.queryInfo.pagenum = newPage
      this.getUserList()
    },


相关文章
|
2月前
|
JavaScript
Vue中如何实现兄弟组件之间的通信
在Vue中,兄弟组件可通过父组件中转、事件总线、Vuex/Pinia或provide/inject实现通信。小型项目推荐父组件中转或事件总线,大型项目建议使用Pinia等状态管理工具,确保数据流清晰可控,避免内存泄漏。
300 2
|
1月前
|
缓存 JavaScript
vue中的keep-alive问题(2)
vue中的keep-alive问题(2)
280 137
|
5月前
|
人工智能 JavaScript 算法
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
Vue 中 key 属性的深入解析:改变 key 导致组件销毁与重建
769 0
|
5月前
|
JavaScript UED
用组件懒加载优化Vue应用性能
用组件懒加载优化Vue应用性能
|
4月前
|
人工智能 JSON JavaScript
VTJ.PRO 首发 MasterGo 设计智能识别引擎,秒级生成 Vue 代码
VTJ.PRO发布「AI MasterGo设计稿识别引擎」,成为全球首个支持解析MasterGo原生JSON文件并自动生成Vue组件的AI工具。通过双引擎架构,实现设计到代码全流程自动化,效率提升300%,助力企业降本增效,引领“设计即生产”新时代。
403 1
|
4月前
|
JavaScript 安全
在 Vue 中,如何在回调函数中正确使用 this?
在 Vue 中,如何在回调函数中正确使用 this?
259 0
|
5月前
|
JavaScript 前端开发 UED
Vue 表情包输入组件实现代码及详细开发流程解析
这是一篇关于 Vue 表情包输入组件的使用方法与封装指南的文章。通过安装依赖、全局注册和局部使用,可以快速集成表情包功能到 Vue 项目中。文章还详细介绍了组件的封装实现、高级配置(如自定义表情列表、主题定制、动画效果和懒加载)以及完整集成示例。开发者可根据需求扩展功能,例如 GIF 搜索或自定义表情上传,提升用户体验。资源链接提供进一步学习材料。
273 1
|
7月前
|
JavaScript
vue实现任务周期cron表达式选择组件
vue实现任务周期cron表达式选择组件
1006 4
|
6月前
|
JavaScript 数据可视化 前端开发
基于 Vue 与 D3 的可拖拽拓扑图技术方案及应用案例解析
本文介绍了基于Vue和D3实现可拖拽拓扑图的技术方案与应用实例。通过Vue构建用户界面和交互逻辑,结合D3强大的数据可视化能力,实现了力导向布局、节点拖拽、交互事件等功能。文章详细讲解了数据模型设计、拖拽功能实现、组件封装及高级扩展(如节点类型定制、连接样式优化等),并提供了性能优化方案以应对大数据量场景。最终,展示了基础网络拓扑、实时更新拓扑等应用实例,为开发者提供了一套完整的实现思路和实践经验。
833 77
|
7月前
|
缓存 JavaScript 前端开发
Vue 基础语法介绍
Vue 基础语法介绍