这是一些小问题的记录和总结:

1. vue serve和build

在vue-cli3.0中可以快速的开发原型。
通过全局安全@vue/cli-service-global

npm i -g @vue/cli-service-global

那么就可以使用vue serve xx.vue起服务和vue build xx.vue打包。
当然打包的话还有更多的配置项:命名,打包模式等。

2. es6箭头函数

我们来看一下箭头函数的效果:

var num = 10
var getNum =  function() { return this.num; }
var getNum2 = () => {return this.num;}

var c = {
  num: 11
}

console.log(getNum.bind(c)()) // 11


console.log(getNum2.bind(c)()) // 10

箭头函数是无法通过bind、apply、call来修改作用域的
这个需要切记。
因为我们习惯使用箭头后,会忘记为什么使用。在有些场景,我们自定义的函数,可能会因为习惯而使用箭头函数;
而使得作用域错误。所以切记在需要的时候使用箭头函数。

如果我们在vue的生命周期使用箭头函数会怎么样?

<template>
  <div id="app">
  </div>
</template>

<script>
export default {
  name: 'app',
  data () {
    return {
    }
  },
  created: () => {
    console.log(this) // undefined
  },
  created () {
    console.log(this) // vue实例
  },
  methods: {
  }
}
</script>

很明显,如果使用箭头函数的话,那么this也无法被修改,那么就会undefined。

3. 控件库中多语言是如何实现的

以前我开发控件库的时候,是把设计中文相关的内容都通过外部传入,那么这样就不会设计多语言了。
但是如果是一些固定的词汇,那么每次通过外面传入是会比较繁琐的。
这边hui或hui-pro是通过自己定义一个工具库。
这个工具库的内容就是先判断this存在不存在,存在的话检测this对象中是否有对语言对象i18n,如果存在那么就使用i18n的语言进行转换。
如果不存在。那么直接使用本地控件库的键值对的形式读取。

4 calc计算

vue中可能有会用计算calc,看如下

修改前
computed: {
    outSpanMaxWidth() {
      // 默认改为了 200px, 需要手动还原
      if (!this.maxWidth) return;
      return `calc(${this.maxWidth} ${this.closable ? '+ 40px' : ''})`;
    }
  }
修改后
computed: {
outSpanMaxWidth() {
  // 默认改为了 200px, 需要手动还原
  if (!this.maxWidth) return;
return `calc(${this.maxWidth} ${this.closable ? '+ 40px' : ''})`; 
}
}

我们可以看到this.closable为ture的时候
outSpanMaxWidth为calc('200px+40px')
为false的时候calc('200px+')
这个在谷歌浏览器是可以正常解析的,但是ie下就无法解析,所以需要注意这个加号


DanielDemi
159 声望8 粉丝

开始前端之旅