基于vue2.0实现的级联选择器
内容摘要
这篇文章主要为大家详细介绍了基于vue2.0实现的级联选择器,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
基于Vue的级联选择器,可以单项,
对此感兴趣的朋友,看看idc笔记做的技术笔记!
基于Vue的级联选择器,可以单项,
文章正文
这篇文章主要为大家详细介绍了基于vue2.0实现的级联选择器,具有一定的参考价值,可以用来参考一下。
对此感兴趣的朋友,看看idc笔记做的技术笔记!
基于Vue的级联选择器,可以单项,二级, 三级级联,多级级联
web开发中我们经常会遇到级联选择器的问题,尤其是在表单中,无外乎几种情况:
- 单个级联 (下拉选择框,单选)
- 单个级联 (多项选择)
- 二级联动 (省份和城市联动)
- 三级联动 (省市区联动)
在jquery中有很多好用的插件,比如select2, 单选,多选的功能都具备。
本文探讨一下在vue中的实现级联选择器,自己在项目中碰到过以下两种情况的后端数据,查阅资料后也证实了这两种数据的合理性:
预览地址
github地址
1 后端处理数据逻辑
这种情况是比较推荐的,大量的数据运算放在后端来进行,只需前后端商量好数据格式即可
一般的数据格式可能如下:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | <code> [{ value: 'beijing' , label: '北京' , children: [{ value: 'chaoyang' , label: '朝阳' }, { value: 'haidian' , label: '海淀' }, { value: 'changping' , label: '昌平' }, { value: 'shunyi' , label: '顺义' }] }, { value: 'shanghai' , label: '上海' , children: [{ value: 'baoshan' , label: '宝山' }, { value: 'jiading' , label: '嘉定' }, { value: 'songjiang' , label: '松江' }, { value: 'pudong' , label: '浦东' }] }] </code> |
特点:数据之间层级嵌套,上下级的关系很清晰
2 前端处理数据逻辑
这种情况适合数据量较小的数据,或者由于某种原因后端只能返给你这种数据,那所有的数据处理就需要前端来操作,最终拼成的格式也与上述情况类似,只不过是多几个或少几个字段的问题。
数据格式可能会是这样:
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | <code> [{ code: 420000, name: '湖北省' , parentCode: 0 }, { code: 420100, name: '武汉市' , parentCode: 420000 }, { code: 420101, name: '市辖区' , parentCode: 420100 }, { code: 420102, name: '江岸区' , parentCode: 420100 }, { code: 420103, name: '江汉区' , parentCode: 420100 }, { code: 420104, name: '硚口区' , parentCode: 420100 }, { code: 420105, name: '汉阳区' , parentCode: 420100 }, { code: 421000, name: '荆州市' , parentCode: 420000 }, { code: 421001, name: '市辖区' , parentCode: 421000 }, { code: 421002, name: '沙市区' , parentCode: 421000 }, { code: 421003, name: '荆州区' , parentCode: 421000 }, { code: 430000, name: '湖南省' , parentCode: 0 }, { code: 430100, name: '长沙市' , parentCode: 430000 }, { code: 430101, name: '市辖区' , parentCode: 430100 }, { code: 430102, name: '芙蓉区' , parentCode: 430100 }, { code: 430103, name: '天心区' , parentCode: 430100 }, { code: 430104, name: '岳麓区' , parentCode: 430100 }] </code> |
特点:数据格式是个平面表,每一条数据中都带有与之相对应的上下级关系。当我们查看某个数据的上下级时,都需要重新去遍历一遍数据。
如何在组件中使用
代码如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 | <code> <div class = "hello" > <form-organization :organization= "organization" v-model= "seleted" ></form-organization> </div> <script> import FormOrganization from '@/components/FormOrganization' export default { name: 'hello' , data () { return { seleted: [], organization: [{ value: 'beijing' , label: '北京' }, { value: 'shanghai' , label: '上海' }, { value: 'shenzhen' , label: '深圳' }, { value: 'hangzhou' , label: '杭州' }, { value: 'zhengzhou' , label: '郑州' }, { value: 'guangzhou' , label: '广州' }, { value: 'xiamen' , label: '厦门' }] } }, components: { FormOrganization } } </script> </code> |
API
props | type | description |
---|---|---|
origanization | Array | 级联数据源,格式必须按照第一种数据中的格式显示 |
value | Array | 选中中或默认值,可以直接用v-model语法糖,具体可以查看例子 |
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持php教程。
注:关于基于vue2.0实现的级联选择器的内容就先介绍到这里,更多相关文章的可以留意
代码注释