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

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

一、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>
目录
相关文章
|
29天前
|
JavaScript
Ant Design Vue UI框架的基础使用,及通用后台管理模板的小demo【简单】
这篇文章介绍了如何使用Ant Design Vue UI框架创建一个简单的后台管理模板,包括创建Vue项目、安装和使用ant-design-vue、以及编写后台管理通用页面的代码和样式。
Ant Design Vue UI框架的基础使用,及通用后台管理模板的小demo【简单】
|
15天前
Element-UI组件的使用
【10月更文挑战第1天】
28 0
|
1月前
|
JavaScript
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
其实这个从零有点歧义,因为本质上是要基于`tdesign-vue-next`来进行二次封装为一套广告UI组件库,现在让我们在一起快乐的搭建自己的广告UI库之前,先对以下内容做出共识:
61 0
从零开始写一套广告组件【一】搭建基础框架并配置UI组件库
|
2月前
|
JavaScript 前端开发 安全
[译] 在 Vue 组件中分离 UI 和业务逻辑。
[译] 在 Vue 组件中分离 UI 和业务逻辑。
|
5月前
|
前端开发 搜索推荐 开发者
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
SAP UI5 sap.m.Column 控件的 minScreenWidth 属性介绍
|
5月前
|
JavaScript 前端开发 开发者
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
SAP UI5 控件 sap.m.ListBase 的 inset 属性的作用介绍
|
5月前
|
前端开发 JavaScript API
SAP UI5 sap.ui.require.toUrl 的作用介绍
SAP UI5 sap.ui.require.toUrl 的作用介绍
|
5月前
|
JSON 前端开发 测试技术
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
SAP UI5 sap.ui.core.util.MockServer.simulate 方法介绍
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
使用 SAP UI5 Event Bus 机制,修复 SAP UI5 分页显示数据的一个 bug 试读版
|
5月前
|
缓存 JavaScript 前端开发
如何理解 SAP UI5 的 sap.ui.define 函数?
如何理解 SAP UI5 的 sap.ui.define 函数?