当前位置:首页 > VUE

vue实现用户信息表

2026-01-07 04:53:05VUE

Vue 实现用户信息表的方法

使用 Vue CLI 创建项目

安装 Vue CLI 并初始化项目:

npm install -g @vue/cli
vue create user-info-table
cd user-info-table

安装必要的依赖

根据需求安装 Element UI 或 Vuetify 等 UI 框架:

npm install element-ui

创建用户信息表组件

src/components 目录下创建 UserTable.vue 文件:

<template>
  <div>
    <el-table :data="users" style="width: 100%">
      <el-table-column prop="name" label="姓名"></el-table-column>
      <el-table-column prop="age" label="年龄"></el-table-column>
      <el-table-column prop="email" label="邮箱"></el-table-column>
      <el-table-column label="操作">
        <template slot-scope="scope">
          <el-button size="mini" @click="handleEdit(scope.row)">编辑</el-button>
          <el-button size="mini" type="danger" @click="handleDelete(scope.row)">删除</el-button>
        </template>
      </el-table-column>
    </el-table>
  </div>
</template>

<script>
export default {
  data() {
    return {
      users: [
        { name: '张三', age: 25, email: 'zhangsan@example.com' },
        { name: '李四', age: 30, email: 'lisi@example.com' }
      ]
    }
  },
  methods: {
    handleEdit(row) {
      console.log('编辑', row)
    },
    handleDelete(row) {
      console.log('删除', row)
    }
  }
}
</script>

添加表单编辑功能

扩展组件以支持编辑功能:

vue实现用户信息表

<template>
  <div>
    <el-dialog :visible.sync="dialogVisible" title="编辑用户">
      <el-form :model="currentUser">
        <el-form-item label="姓名">
          <el-input v-model="currentUser.name"></el-input>
        </el-form-item>
        <el-form-item label="年龄">
          <el-input v-model="currentUser.age"></el-input>
        </el-form-item>
        <el-form-item label="邮箱">
          <el-input v-model="currentUser.email"></el-input>
        </el-form-item>
      </el-form>
      <span slot="footer">
        <el-button @click="dialogVisible = false">取消</el-button>
        <el-button type="primary" @click="saveUser">保存</el-button>
      </span>
    </el-dialog>
  </div>
</template>

<script>
export default {
  data() {
    return {
      dialogVisible: false,
      currentUser: {}
    }
  },
  methods: {
    handleEdit(row) {
      this.currentUser = {...row}
      this.dialogVisible = true
    },
    saveUser() {
      // 更新逻辑
      this.dialogVisible = false
    }
  }
}
</script>

实现数据持久化

添加与后端 API 的交互:

methods: {
  async fetchUsers() {
    const response = await axios.get('/api/users')
    this.users = response.data
  },
  async saveUser() {
    await axios.put(`/api/users/${this.currentUser.id}`, this.currentUser)
    this.dialogVisible = false
    this.fetchUsers()
  }
},
created() {
  this.fetchUsers()
}

添加表单验证

在表单中添加验证规则:

vue实现用户信息表

data() {
  return {
    rules: {
      name: [{ required: true, message: '请输入姓名', trigger: 'blur' }],
      age: [{ required: true, message: '请输入年龄', trigger: 'blur' }],
      email: [
        { required: true, message: '请输入邮箱', trigger: 'blur' },
        { type: 'email', message: '请输入正确的邮箱地址', trigger: ['blur', 'change'] }
      ]
    }
  }
}

响应式布局优化

使用 CSS 或 UI 框架的响应式功能确保表格在不同设备上显示良好:

@media (max-width: 768px) {
  .el-table {
    font-size: 12px;
  }
}

组件注册与使用

main.js 中注册组件:

import Vue from 'vue'
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
import App from './App.vue'

Vue.use(ElementUI)

new Vue({
  render: h => h(App)
}).$mount('#app')

在父组件中使用:

<template>
  <div id="app">
    <user-table></user-table>
  </div>
</template>

<script>
import UserTable from './components/UserTable.vue'

export default {
  components: {
    UserTable
  }
}
</script>

标签: 用户信息vue
分享给朋友:

相关文章

vue实现路由导航

vue实现路由导航

路由导航的实现方式 在Vue中,路由导航主要通过Vue Router实现。Vue Router是Vue.js官方的路由管理器,用于构建单页面应用(SPA)。 基本路由配置 安装Vue Router…

vue实现tab换行

vue实现tab换行

Vue实现Tab切换的常见方法 使用Vue实现Tab切换功能可以通过多种方式完成,以下是几种常见的方法: 动态组件结合v-if或v-show 通过v-if或v-show控制不同Tab内容的显示…

vue弹幕实现不重叠

vue弹幕实现不重叠

实现 Vue 弹幕不重叠的方法 CSS 定位与动画控制 通过绝对定位和动态计算弹幕轨道高度,确保弹幕在不同轨道上运行。每条弹幕占据固定高度的轨道,避免重叠。 // 弹幕轨道高度计算 const t…

vue实现选择本地文件

vue实现选择本地文件

实现文件选择功能 在Vue中实现本地文件选择可以通过HTML原生的<input type="file">元素实现。创建一个基本的文件选择组件: <template> &l…

vue如何实现到期提醒

vue如何实现到期提醒

实现 Vue 到期提醒功能 使用计算属性计算剩余时间 在 Vue 组件中定义一个计算属性,计算目标日期与当前日期的差值。通过 Date 对象获取时间戳并计算剩余天数或小时数。 computed:…

vue实现滚动截屏

vue实现滚动截屏

实现滚动截屏的基本思路 滚动截屏通常指对超出可视区域的长页面进行完整截图。在Vue中,可以通过结合DOM操作、Canvas绘制及第三方库实现。以下是具体方法: 使用html2canvas库实现…