美文网首页
封装el-selected

封装el-selected

作者: 柒个M | 来源:发表于2020-09-18 16:39 被阅读0次

在开发项目中,发现表单上有很多el-selected组件,于是,倒不如把它封装起来,减少代码量,可以实现复用。

SelectedPackage组件:

<template>
    <div>
        <el-select
                v-if="selectedData.type==='select'"
                v-model="selectedValue"
                :multiple="selectedData.multiple"
                collapse-tags
                clearable
                :disabled="selectedData.isDisabled"
                :placeholder="selectedData.placeholder"
                @change="changeHandle"
        >
            <el-option
                    v-for="item in selectedData.options"
                    :key="item.value"
                    :label="item.label"
                    :value="item.value"
                    :disabled="item.isDisabled"
            />
        </el-select>
    </div>
</template>

<script>
    export default {
        name: "SelectedPack",
        props: {
            selectedData: {
              type: Object,
              required: true
            }
        },
        // watch: {
        //     selectedValue: {
        //         handle(newVal,oldVal){
        //             this.$emit('selectedValue',newVal)
        //         }
        //     }
        // },
        data() {
            return {
                selectedValue: '', // 选择的值
            }
        },
        methods: {
            changeHandle(val) {
                this.$emit('selectedValue',val)
            }
        }
    }
</script>

<style scoped>

</style>

在父组件中的引用:

<selected-pack :selectedData="selectedData" @selectedValue="getSelectedValue"></selected-pack>
data(){
  return{
    selectedData: {
                    type: 'select',
                    value: 'huaian',
                    multiple: false,
                    isDisabled: false,
                    placeholder: '请选择',
                    options: [
                        {name: '上海', value: 'shanghai'},
                        {name: '北京', value: 'beijing'},
                        {name: '淮安', value: 'huaian'}
                    ]
                }
  }
},
methods:{
   getSelectedValue(val) {
              this.$notify.info({
                  message: val
              })
            }
}

好啦,这样就可以实现复用了:

效果图:


图片.png

相关文章

  • 封装el-selected

    在开发项目中,发现表单上有很多el-selected组件,于是,倒不如把它封装起来,减少代码量,可以实现复用。 S...

  • JavaScript面向对象与设计模式

    1. 面向对象 1.1 封装 封装的目的在于将信息隐藏。广义的封装不仅包括封装数据和封装实现,还包括封装类型和封装...

  • 02.OOP面向对象-3.一些理解

    对封装的理解?封装,类本身就是一个封装,封装了属性和方法。方法也是封装,对一些业务逻辑的封装。私有也是封装,将一些...

  • 封装微信小程序请求

    封装wx.request 封装api 封装请求调用

  • python 文件及文件夹的操作和异常捕获

    1、面向对象的特征:封装、继承、多态 1.1、封装: 函数一种封装,封装了一些逻辑代码 类也是一种封装,封装属性和...

  • node学习4

    Nodejs 路由模块封装、封装仿照 express 的路由 Nodejs 路由模块封装 封装仿照 express...

  • 封装组件

    封装tab组件封装曝光加载组件封装轮播组件 代码

  • MVVM在网络中应用(OkHttp+Retrofit+Gson+

    1.封装请求地址常量类 2.封装网络工具类 3.封装接口类 4.封装DTO类——即返回的数据封装模型 5.封装请求...

  • view的封装

    封装view较为简单,封装tableview比较麻烦,封装tableview的方法后面会有。 view的封装 如果...

  • 记录封装好的axios

    拦截封装 路由封装

网友评论

      本文标题:封装el-selected

      本文链接:https://www.haomeiwen.com/subject/nwpjyktx.html