• 下拉框组件的封装(element ui )


    目录

    实现思路

    创建通用的下拉选择框组件

    如何使用这个组件

    结语


    当你使用Vue.js构建Web应用时,封装可复用组件是提高开发效率和代码可维护性的关键之一。在这篇文章中,我们将探讨如何使用Vue.js来创建一个通用的下拉选择框组件,以及如何将它封装成一个可配置的组件。

    实现思路

    一级联动

    • 先从饿了么拿下拉列表
    • 数据处理
    • 提示名处理
    • 设定默认值(直接设定result即可),用computed来做

    二级联动

    • 增加子项,子项数据默认为空数组
    • 付项增加children数据
    • 父项加一个函数,用来取到children设置给子项
    • 处理父项默认数据,子项也跟着默认数据

    创建通用的下拉选择框组件

    首先,让我们创建一个通用的下拉选择框组件。这个组件将使用Element UI的来实现。它具有以下特点:

    • 支持通过props传入数据,包括下拉选项的选项列表、占位符等。
    • 当选择项发生变化时,可以触发一个自定义的change事件,并且可以通过回调函数处理选择结果。
    • 可以支持筛选功能,使用户可以搜索选择项。
    1. <template>
    2. <el-select
    3. v-model="value"
    4. filterable
    5. :placeholder="select.name || '请选择'"
    6. @change="change"
    7. >
    8. <el-option
    9. v-for="item in select.data"
    10. :key="item.value"
    11. :label="item.label"
    12. :value="item.value"
    13. >
    14. </el-option>
    15. </el-select>
    16. </template>
    17. <script>
    18. export default {
    19. props: {
    20. select: Object,
    21. },
    22. data() {
    23. return {};
    24. },
    25. computed: {
    26. value: {
    27. get() {
    28. this.select.result && this.change(this.select.result);
    29. return this.select.result;
    30. },
    31. set() {},
    32. },
    33. },
    34. methods: {
    35. change(val) {
    36. this.select.result = val;
    37. console.log(this.select.result);
    38. this.select.change && this.select.change(this.buildChildren(val));
    39. },
    40. buildChildren(val) {
    41. let data = this.select.data.find((item) => {
    42. return item.value == val;
    43. });
    44. return data.children;
    45. },
    46. },
    47. };
    48. </script>

    如何使用这个组件

    现在,让我们看看如何在Vue.js应用中使用这个通用的下拉选择框组件。首先,你需要导入这个组件并注册它,然后可以在模板中使用它。

    1. <template>
    2. <div class="table-page">
    3. <Select :select="select"></Select>
    4. <Select :select="selectChild"></Select>
    5. </div>
    6. </template>
    7. <script>
    8. import Select from "./componentsdemo/SelectMain.vue";
    9. export default {
    10. name: "Index",
    11. components: {
    12. Select,
    13. },
    14. data() {
    15. return {
    16. selectChild: {
    17. result: "",
    18. name: "食物子项",
    19. data: [],
    20. },
    21. select: {
    22. result: "选项2",
    23. name: "食物",
    24. change: (data) => {
    25. console.log(data);
    26. this.selectChild.result = "";
    27. this.selectChild.data = data;
    28. },
    29. data: [
    30. {
    31. value: "选项1",
    32. label: "黄金糕",
    33. children: [
    34. {
    35. value: "选项1-1",
    36. label: "黄金糕1-1",
    37. },
    38. {
    39. value: "选项1-2",
    40. label: "黄金糕1-2",
    41. },
    42. ],
    43. },
    44. {
    45. value: "选项2",
    46. label: "双皮奶",
    47. children: [
    48. {
    49. value: "选项2-1",
    50. label: "双皮奶2-1",
    51. },
    52. {
    53. value: "选项2-2",
    54. label: "双皮奶2-2",
    55. },
    56. ],
    57. },
    58. {
    59. value: "选项3",
    60. label: "蚵仔煎",
    61. },
    62. {
    63. value: "选项4",
    64. label: "龙须面",
    65. },
    66. {
    67. value: "选项5",
    68. label: "北京烤鸭",
    69. },
    70. ],
    71. },
    72. };
    73. },
    74. methods: {
    75. submit() {
    76. console.log(this.select);
    77. },
    78. },
    79. };
    80. </script>

    在上述示例中,我们首先导入了通用下拉选择框组件,然后在模板中使用它,并将需要的数据传递给它。当选择项发生变化时,我们可以通过@change事件来处理选择结果。

    结语

    通过封装通用组件,我们可以在Vue.js应用中轻松地实现重复使用的功能,提高开发效率并减少重复工作。通用下拉选择框组件是一个很好的例子,它可以根据不同的需求进行配置,使其适用于多种情况。希望本文对你理解如何创建和使用Vue.js组件有所帮助!

  • 相关阅读:
    Java新手小白入门篇 SpringBoot项目的构建
    C语言sizeof操作符与strlen函数
    苍穹外卖项目(黑马)学习笔记DAY10
    四旋翼无人机学习第11节--页连接符与跨页连接符的使用
    小白学习Java第四十天
    C++ map容器的简单用法
    zabbix监控——自定义监控内容
    大健康产业商业供应链管理系统数字化提升产业链运作效率推动供应链标准化建设
    【白嫖8k买的机构vip教程】Appium自动化(3):Appium-Desktop界面介绍
    百度飞桨AI4S亮相全国动力学设计与反问题研讨会,助力汽车底盘智能设计
  • 原文地址:https://blog.csdn.net/qq_63358859/article/details/133133249