Vue开发中Element UI/Plus使用指南:常见问题(如Missing required prop: “value“)及中文全局组件配置解决方案

20 篇文章 2 订阅
文章详细介绍了在Vue项目中使用el-table的索引功能,包括常规索引显示、自定义索引、解决Missingrequiredprop:“value”错误,以及在Vue3中配置ElementPlus组件以实现全局中文支持的方法。
摘要由CSDN通过智能技术生成

一、vue中使用el-table的type=index有时不显示序号

Table 表格

用于展示多条结构类似的数据,可对数据进行排序、筛选、对比或其他自定义操作。

当el-table元素中注入data对象数组后,在el-table-column中用prop属性来对应对象中的键名即可填入数据,用label属性来定义表格的列名。可以使用width属性来定义列宽。

显示索引

如果需要显示索引,可以增加一列el-table-column,设置type属性为index即可显示从 1 开始的索引号。

<el-table-column
      type="index"
      width="50">
</el-table-column>
自定义索引

通过给 type=index 的列传入 index 属性,可以自定义索引。该属性传入数字时,将作为索引的起始值。也可以传入一个方法,它提供当前行的行号(从 0 开始)作为参数,返回值将作为索引展示。

<el-table-column
      type="index"
      :index="indexMethod">
</el-table-column>
methods: {
  indexMethod(index) {
    return index * 2;
  }
}

在这里插入图片描述

报错信息

el-table中通过type=index来显示序号。有时候序号不能正常显示。

解决方案

使用template来换一种写法

<el-table-column label="序号" width="50" align="center">
    <template slot-scope="scope">{{scope.$index+1}}</template>
</el-table-column>

二、vue中Missing required prop: “value” 报错

在这里插入图片描述

报错原因
  • 表单中没有进行双向数据绑定(v-model)
<el-form-item label="活动名称">
    <el-input></el-input>
</el-form-item>
  • el-option没有进行value赋值
<el-select v-model="value" placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label">
    </el-option>
</el-select>
解决方案
  • 表单中每一项都要使用v-model绑定
<el-form-item label="活动名称">
    <el-input v-model="form.name"></el-input>
</el-form-item>
  • el-option进行value赋值
<el-select v-model="value" placeholder="请选择">
    <el-option
      v-for="item in options"
      :key="item.value"
      :label="item.label"
      :value="item.value">
    </el-option>
</el-select>

若el-select进行了双向数据绑定,且每一项el-option都进行了value赋值,然而还报了这个错,这时需要检查下每一项绑定value的变量是否都在数组中存在。

三、el-table的索引值index在翻页的时候可以连续显示

方法一

通过给 type=index 的列传入 index 属性,可以自定义索引。该属性传入数字时,将作为索引的起始值。也可以传入一个方法,它提供当前行的行号(从 0 开始)作为参数,返回值将作为索引展示。
在这里插入图片描述

<template>
  <el-table
    :data="tableData"
    style="width: 100%">
    <el-table-column
      type="index"
      :index="indexMethod">
    </el-table-column>
  </el-table>
</template>

<script>
  export default {
    data() {
      return { }
    },
    methods: {
      indexMethod(index) {
        // index 当前序号,pageSize 每页显示的条数,currentPage 当前页码
        return index + this.pageSize * ( this.currentPage - 1 ) + 1
      }
    }
  };
</script>
方法二

通过 Scoped slot 可以获取到 row, column, $index 和 store(table 内部的状态管理)的数据。

在这里插入图片描述

<template>
  <el-table
    :data="tableData"
    style="width: 100%">
    <el-table-column
      type="index">
      <template slot-scope="scope">
        <span>{{ scope.$index + pageSize * ( currentPage - 1 ) + 1 }}</span>
      </template>
    </el-table-column>
  </el-table>
</template>

四、vue3中Element Plus全局组件配置中文的两种方案

Element+是一款用于制作页面样式,设计页面结构的框架。相比于其他的几个框架,这个框架设计的更为人性化,对企业级框架VUE的集成也很高。

Element Plus 组件 默认 使用英语,如果你希望使用其他语言,你可以参考下面的两种方案。

1.在 App.vue 的文件中修改
<template>
    <el-config-provider :locale="locale">
      <router-view></router-view>
    </el-config-provider>
</template>

<script setup>
// // 引入配置组件
import { ElConfigProvider } from 'element-plus'
// 引入中文包
import zhCn from 'element-plus/lib/locale/lang/zh-cn';
 
const { locale } = reactive({
  locale: zhCn,
});
</script>
2.在main.js的文件中修改
import ElementPlus from 'element-plus'
import zhCn from 'element-plus/dist/locale/zh-cn.mjs'

app.use(ElementPlus, {
  locale: zhCn,
})
国际化

Element Plus 还提供了一个 Vue 组件 ConfigProvider 用于全局配置国际化的设置。

<template>
  <el-config-provider :locale="locale">
    <app />
  </el-config-provider>
</template>

<script>
  import { defineComponent } from 'vue'
  import { ElConfigProvider } from 'element-plus'

  import zhCn from 'element-plus/dist/locale/zh-cn.mjs'

  export default defineComponent({
    components: {
      ElConfigProvider,
    },
    setup() {
      return {
        locale: zhCn,
      }
    },
  })
</script>
  • 23
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

邹荣乐

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值