在Vue中使用filters来进行字典值的转换
在Vue里面,经常会遇到一些字典值的转换,而这些字典值由于和后端进行了约定的,一般不会轻易的改变,所以在前后端开发的项目中,这种字典值最好的做法是前端独立的保存一份,自己在前端自行进行处理。
我们的做法是使用Vuex
的store
配合filters
来进行前端的字典值转化,首先是在store
里面将字典值进行固定,然后通过filters
在页面中进行一个转换。
使用Store
在Vue
里面使用store
首先需要安装vuex
,安装完毕之后就可以直接在main.js
里面直接引用了,但是为了统一管理还是决定新建一个store
文件夹,然后将store
相关的文件全部统一存放,新建完毕之后项目结构如下:
1 | ---App.vue |
在新建的index.js
里面将Vuex
实例注入到Vue
中,如下:
1 | import Vue from 'vue'; |
在这里我定义了两个变量,一个是score
,一个是enum
,score
主要是为了展示一些固定的值在前端的展示,而enum
则是准备介绍filter
的使用
新建一个Vue页面
在这个页面里面,主要是介绍store
的直接使用
1 | <template> |
然后查看页面,就会发现页面上已经出现了三个分数,分别是在store
里面定义的60,80,100。这种方式是通过...mapState
来获取的state
里面定义的一些值。
通过这种方式有几种好处,第一就是当需要改变前端某一个字段的值的时候,则可以直接通过store
从而减少对项目的改动,其二就是可以让前端项目更加规范、可扩展。
使用filter来进行一些值的处理
为了大大提高前端的可扩展性,通过会对一些固定的值进行转换。例如性别,后端可能会返回 0 或者 1,若前端在某些页面上需要显示为男|女
,而在某一些页面上需要显示先生|女士
,此时通过filter
来进行处理,则是一个不错的选择。
新建一个文件夹和js文件
1 | ---App.vue |
filter.js
1 | import store from '../store/index'; |
main.js
1 | import * as filters from './utils/filter'; |
在这里通过Vue.filter
将filter方法进行全局注册,然后在Vue
页面进行使用
1 | <template> |
此时页面上就会展示及格
,良好
,优秀
了
在Vue中使用filters来进行字典值的转换
https://somersames.github.io/2019/05/27/在Vue中使用filters来进行字典值的转换/