vue

你有二次封装过ElementUI组件吗?

发布于 2021-01-11 17:02:27
关注者
0
被浏览
1611
6 个回答
  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    有啊! 类似于分页, 表格, 毕竟每个项目的这些东西, 比如pageSize, size, 这些在每个项目基本都是统一的,
    设置起来会有四五个参数prop是固定的, 我不可能每次使用的时候都设置一次

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    价格输入框
    功能: v-mode="1000" 单位分;输入框显示 10.00;手动输入100显示100.00;
    image

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    价格输入框
    功能: v-mode="1000" 单位分;输入框显示 10.00;手动输入100显示100.00;
    image

    你怎么封装的?

  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。

    价格输入框
    功能: v-mode="1000" 单位分;输入框显示 10.00;手动输入100显示100.00;
    image

    你怎么封装的?

    其实是简单的做了下处理,大概如下

    <template>
      <el-input
        placeholder="价格"
        v-model="current"
        :disabled="disabled"
        :maxlength="8"
        @change="change"
      ></el-input>
    </template>
    <script>
    export default {
      props: {
        value: Number,
        disabled: Boolean
      },
      data() {
        return {
          current: ""
        };
      },
      watch: {
        value(val) {
          if (val > 0) {
            this.current = (val / 100).toFixed(2);
          } else {
            this.current = "";
          }
        }
      },
      created() {
        if (this.value > 0) {
          this.current = (this.value / 100).toFixed(2);
        } else {
          this.current = "";
        }
      },
      methods: {
        change() {
          let value = this.current * 100 || 0;
          this.current = (value / 100).toFixed(2);
          this.$emit("input", value.toFixed(0) * 1);
        }
      }
    };
    </script>
    
  • 面试哥
    面试哥 2021-01-12
    为面试而生,有面试问题,就找面试哥。
知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看