学习前辈代码编写的风格---组件处理

前言

在项目中封装过自己的组件但是一直没有尝试封装过公共的组件,恰巧这次做集团官网项目前辈封装了三个组件顶部导航组件、底部组件、侧边按钮。接着这次机会,学习一下前辈封装组件的处理方法。

侧边按钮

说一下侧边按钮吧相对来说简单一点的组件,直接贴上代码:

<template>
  <div class="new-fixed-icon">
    <el-tooltip v-show="showbackold && (top <= 300)" class="back-oldPage" content="返回旧版" effect="light" popper-class="popper-old" placement="left">
      <a href="www.baidu.com">
      	<img src="https://www.baidu.com/favicon.ico" alt="">
      </a>
    </el-tooltip>
    <div class="service-entry">
      <el-tooltip content="员工通道" effect="light" popper-class="popper-old" placement="left">
        <a href="" target="_blank">
        	<img src="https://www.baidu.com/favicon.ico" alt="" class="gxh">
        </a>
      </el-tooltip>
      <el-tooltip content="联系客服" effect="light" popper-class="popper-old" placement="left">
        <a target="_blank" href="www.baidu.com">
          <img src="https://www.baidu.com/favicon.ico" alt="" class="kf">
        </a>
      </el-tooltip>
    </div>
    <div @click="scrollToTop" v-show="top > 300" class="to-top justify-center align-center cursor">
      <img src="https://www.baidu.com/favicon.ico" alt="">
    </div>
  </div>
</template>
<script>
export default {
  props: ['top', 'showbackold'],
  data() {
    return {

    }
  },
  methods: {
    scrollToTop() {
      window.scroll(0,0)
    }
  }
}
</script>
<style lang="scss">
.new-fixed-icon {
  z-index: 998;
  position: fixed;
  right: 10px;
  top: 50%;
  transform: translateY(-50%);

  .popper-old {
    font-size: 12PX;
    color: #555555;
  }

  .back-oldPage {
    width: 48px;
    height: 48px;
    background: #FFFFFF;
    box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.08);
    border-radius: 24px;
    border: 1px solid #ECECEC;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 16px;

    img {
      width: 24px;
      height: 24px;
    }

  }

  .service-entry {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    width: 48px;
    padding: 14px 0;
    box-sizing: border-box;
    background: #FFFFFF;
    box-shadow: 2px 2px 10px 0px rgba(0, 0, 0, 0.08);
    border-radius: 30px;
    border: 1px solid #ECECEC;

    .kf {
      z-index: 2;
      width: 24px;
      height: 24px;
    }

    a {

      img {
        width: 24px;
        height: 24px;
      }

      margin-bottom: 16px;

      &:last-child {
        margin-bottom: 0;
      }
    }
  }
  .to-top {
    width: 48px;
    height: 48px;
    margin-top: 16px;
    background: #FFFFFF;
    box-shadow: 2px 2px 10px 0px rgba(0,0,0,0.08);
    border-radius: 24px;
    opacity: 1;
    border: 1px solid #ECECEC;
    img {
      width: 24px;
    }
  }
}
</style>

简单分析一下:
这里接收了两个值,top、showbackold ,top控制着组件显示的时机,showbackold控制着对应内容是否显示
在页面中使用:

// 传递两个变量
<rightFixedIcon :top="scrollTop" :showbackold="false"></rightFixedIcon>

传递两个值就可以进行使用
这个组件结合了element中tooltip组件一起使用的节省了很多代码。

效果图入下:


总结:
相对来说,前辈封装的三个组件挺类似的,但总体是组件内处理样式和数据,通过props进行数据上的传递,以此达到想要的效果。

扫描二维码关注公众号,回复: 17363223 查看本文章

猜你喜欢

转载自blog.csdn.net/WDJ_webDeveloper/article/details/135357322