这是一些小问题的记录和总结:
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下就无法解析,所以需要注意这个加号