在 Vue.js 组件上下文中,`this`指向了组件实例。因此当你切换到了不同的上下文时,要确保 `this` 指向一个可用的 `component` 变量。
换句话说,如果你正在使用 ES6 的话,就不要再编写 `var self = this;` 这样的代码了,您可以安全地使用 Vue 组件。
### [](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#为什么-4)为什么?
* 使用 ES6,就不再需要将 `this` 保存到一个变量中了。
* 一般来说,当你使用箭头函数时,会保留 `this` 的作用域。(译者注:箭头函数没有它自己的 this 值,箭头函数内的 this 值继承自外围作用域。)
* 如果你没有使用 ES6,当然也就不会使用 `箭头函数` 啦,那你必须将 “this” 保存到到某个变量中。这是唯一的例外。
* 如果必须要使用的地方,定义为**var _this = this**
### [](https://github.com/pablohpsilva/vuejs-component-style-guide/blob/master/README-CN.md#怎么做-4)怎么做?
~~~
<script type="text/javascript">
export default {
methods: {
hello() {
return 'hello';
},
printHello() {
console.log(this.hello());
},
},
};
</script>
<!-- 避免 -->
<script type="text/javascript">
export default {
methods: {
hello() {
return 'hello';
},
printHello() {
const self = this; // 没有必要
console.log(self.hello());
},
},
};
</script>
~~~
- Vue开发规范
- 基于模块开发
- 组件
- 组件命名规则
- 基础组件名
- 单例组件名
- 紧密耦合的组件名
- 组件名中的单词顺序
- 组件文件夹命名规则
- method方法
- methods方法命名规则
- 组件结构化
- 组件事件命名规则
- v-for与v-if
- 为 v-for 设置键值
- 避免 v-if 和 v-for 用在一起
- Prop
- Prop命名规则
- Prop定义
- 避免 this.$parent
- 谨慎使用 this.$refs
- 隐性的父子组件通信
- 元素
- 元素特性的顺序
- 多个特性的元素摆放规则
- 单文件组件的顶级元素的顺序
- 简化代码
- 模板中简单的表达式
- 简单的计算属性
- 指令缩写
- 文件引用路径
- 其他注意
- 组件数据
- 将 this 赋值给 component 变量
- 对组件文件进行代码校验
- 尽可能使用 mixins
- 非 Flux 的全局状态管理
- 只在需要时创建组件
- HTML开发规范
- HTML语法
- HTML5 doctype
- 语言属性
- IE 兼容模式
- 字符编码
- 引入 CSS 和 JavaScript 文件
- 实用为王
- 属性顺序
- 布尔(boolean)型属性
- 减少标签的数量
- JavaScript 生成的标签
- CSS开发规范
- CSS语法
- 声明顺序
- 不要使用 @import
- 媒体查询(Media query)的位置
- 带前缀的属性
- 单行规则声明
- 简写形式的属性声明
- Less 和 Sass 中的嵌套
- Less 和 Sass 中的操作符
- 注释
- class 命名
- 选择器
- 代码组织