Vue2二次封装elementUI教程,用例button按钮

 一、效果(两个都是二次封装的)

 二、源代码

        核心代码

<template>
    <el-button v-if="!addValve" :type="type" class="pub" @click="handClick"><slot /></el-button>
    <el-button v-else :class="addType" class="pub" @click="handClick"><slot /></el-button>
</template>

<script>
export default {
  name: 'jwButton',
  watch: {
    type: {
      handler: function (newVal) {
        const value = newVal
        // element原生
        const arr = ['primary', 'success', 'info', 'warning', 'danger']
        // 自增type属性
        const addArr = ['add', 'error']
        if (arr.includes(value)) {
          this.addValve = false
        } else {
          if (addArr.includes(value)) {
            this.addValve = true
            this.addType = value
          }
        }
      },
      immediate: true
    }
  },
  props: {
    type: {
      type: String
    }
  },
  data () {
    return {
      addValve: false,
      addType: 'add'
    }
  },
  methods: {
    handClick (e) {
      this.$emit('click', e)
    }
  }
}
</script>
<style lang='scss' scoped>
.pub {
  min-width: 20px;
  color: #fff;
  font-size: 24px;
}
.add {
  min-width: 20px;
  height: 40px;
  color: #333;
  background-color: #f1f1f1;
  border-radius: 4px;
}
.add:hover {
  opacity: 0.8;
}
.add:active {
  color: #fff;
  background-color: #6633FF;
}
.error {
  background-color: rgb(206, 97, 97);
  color: #fff;
  border-radius: 4px;
}
</style>

        引用

<template>
  <div>
    <jw-button type="primary">jsdahdjkashdakjshdakjshdakshdaksdhak</jw-button>
    <jw-button type="error" @click="onClick">jsdahdjkashdakjshdakjshdakshdaksdhak</jw-button>
  </div>
</template>

<script>
export default {
  data () {
    return {}
  },
  methods: {
    onClick () {
      console.log('zhhs')
    }
  }
}
</script>
<style lang='scss' scoped>
.btnn {
  background-color: rgb(184, 61, 61);
  color: #fff;
}
</style>

         全局挂载

import Vue from 'vue'
// 引入element
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
// 引入自定义组件
import Button from './custom/jwButton.vue'

Vue.component('jw-button', Button)

Vue.use(ElementUI)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值