vue制作自定义按钮的方法-创新互联

本篇文章主要探讨vue制作自定义按钮的方法的解决方法。有一定的参考价值,有需要的朋友可以参考一下,跟随小编一起来看解决方法吧。

创新互联是一家集网站建设,兴和企业网站建设,兴和品牌网站建设,网站定制,兴和网站建设报价,网络营销,网络优化,兴和网站推广为一体的创新建站企业,帮助传统企业提升企业形象加强企业竞争力。可充分满足这一群体相比中小企业更为丰富、高端、多元的互联网需求。同时我们时刻保持专业、时尚、前沿,时刻以成就客户成长自我,坚持不断学习、思考、沉淀、净化自己,让我们为更多的企业打造出实用型网站。

在实际开发项目中,有时我们会用到自定义按钮;因为一个项目中,众多的页面,为了统一风格,我们会重复用到很多相同或相似的按钮,这时候,自定义按钮组件就派上了大用场,我们把定义好的按钮组件导出,在全局引用,就可以在其他组件随意使用啦,这样可以大幅度的提高我们的工作效率。

好了,话不多说,上代码:
img-button.vue//这是我们自定义按钮组件

<template>
  <div>
    <!-- 图片按钮 -->
    <div v-if="type === '查看'" :title="tag === '' ? type : tag" class="img-btn check-img"></div>
    <div v-if="type === '添加'" :title="tag === '' ? type : tag" class="img-btn add-img"></div>
    <div v-if="type === '修改'" :title="tag === '' ? type : tag" class="img-btn edit-img"></div>
    <div v-if="type === '删除'" :title="tag === '' ? type : tag" class="img-btn delete-img"></div>
    
    <div v-if="type === '刷新'" :title="tag === '' ? type : tag"  class="img-btn refresh-img"></div>
    <div v-if="type === '关闭'" :title="tag === '' ? type : tag" class="img-btn close-img"></div>
    
    <div v-if="type === '齿轮'" :title="tag === '' ? type : tag" class="img-btn gear-img"></div>
    <div v-if="type === '平面图'" :title="tag === '' ? type : tag" class="img-btn plan-img"></div>
    <div v-if="type === '地图'" :title="tag === '' ? type : tag" class="img-btn map-img"></div>
    <div v-if="type === '一般模板'" :title="tag === '' ? type : tag" class="img-btn normal-img"></div>
    <div v-if="type === '特殊模板'" :title="tag === '' ? type : tag" class="img-btn special-img"></div>
    <div v-if="type === '折线图'" :title="tag === '' ? type : tag" class="img-btn line-img"></div>
    <!-- 文字按钮 自定义大小-->
    <div v-if="type === '按钮'" :title="tag === '' ? name : tag" class="img-btn ibtn">{{name}}</div>
    <div v-if="type === '小按钮'" :title="tag === '' ? name : tag">{{name}}</div>
    <div v-if="type === '普通按钮'" :title="tag === '' ? name : tag">{{name}}</div>
  </div>
</template>

<script>
export default {
  name: 'ImgButton',
  props: { 
    type: {
      type: String,
      default: ''
    },
    name: {
      type: String,
      default: ''
    },
    tag: {
      type: String,
      default: ''
    }
  }
}
</script>

<style scoped>
  .img-button {
    vertical-align: middle;
    display: inline-block;
    cursor: pointer;
    margin-right: 10px;
    .img-btn {
      .img-no-repeat;
     width:25px;
      height:25px;
    }
    .img-btn:hover {
      transform: scale(1.1);
    }
    .refresh-img {
      background-image: url('../../assets/images/button/refresh.png');
    }
    .add-img {
      background-image: url('../../assets/images/button/add.png');
    }
    .delete-img {
      background-image: url('../../assets/images/button/delete.png');
    }
    .check-img {
      background-image: url('../../assets/images/button/check.png');
    }
    .close-img {
      background-image: url('../../assets/images/button/close.png');
    }
    .edit-img {
      background-image: url('../../assets/images/button/edit.png');
    }
    .gear-img {
      background-image: url('../../assets/images/button/gear.png')
    }
    .plan-img {
      background-image: url('../../assets/images/button/plan.png')
    }
    .map-img {
      background-image: url('../../assets/images/button/map.png')
    }
    .normal-img {
      background-image: url('../../assets/images/button/normal.png')
    }
    .special-img {
      background-image: url('../../assets/images/button/special.png')
    }
    .line-img {
      background-image: url('../../assets/images/button/line_chart.png')
    }
    .ibtn {
     width: auto;
      min-width: 100px;
      padding: 0 20px;
      font-size: 17px;
      height: 30px;
      line-height: 30px; 
      text-align: center;
      border-radius:15px;
      background-color: #2f5d98;
      vertical-align: middle;
      color:#00cccc;
    }
    .ibtn-samll {
      .ibtn;
      height: 25px;
      padding: 0 2px;
      font-size: 10px;
      line-height: 25px;
      border-radius: 0px;
      background-color: transparent;
      border: 1px solid #00cccc;
    }
    .ibtn-samll:hover {
      color: white;
      border: 1px solid white;
    }
    .normal-btn {
      .ibtn;
    }
    .normal-btn:hover {
      color: white;
      background-color: #ff9247;
    }
  }
</style>

在router.js中配置好路由
在main.js中引入

//注册自定义按钮  
import imgButton from './components/img-button'
Vue.use(imgButton)

然后就可以在其他组件使用了

<imgButton type='刷新' @click.native='refreshBtn'></imgButton>

//值得注意的是 自定义按钮组件添加点击事件的时候一定要加.native 因为.native 修饰符就是用来注册元素的原生事件而不是组件自定义事件的

以上就是vue制作自定义按钮的方法的具体操作,代码详细清楚,如果在日常工作遇到这个问题,希望你能通过这篇文章解决问题。如果想了解更多相关内容,欢迎关注创新互联行业资讯频道!

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。

当前题目:vue制作自定义按钮的方法-创新互联
分享网址:https://www.cdcxhl.com/article4/cepeie.html

成都网站建设公司_创新互联,为您提供App设计做网站网站策划手机网站建设软件开发外贸网站建设

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

网站托管运营