【问题标题】:Use of backtick in ember computed properties在 ember 计算属性中使用反引号
【发布时间】:2016-04-05 08:09:35
【问题描述】:

指南show a computed property 用反引号编写。我不确定它们是否有必要。

这样可以吗:

fullName: Ember.computed('firstName', 'lastName', function() {
    return `${this.get('firstName')} ${this.get('lastName')}`;
})

改写成这样:

fullName: Ember.computed('firstName', 'lastName', function() {
    return this.get('firstName') + ' ' + this.get('lastName');
})

?

对我来说,这不那么晦涩难懂。每种方法的优缺点是什么?

【问题讨论】:

    标签: javascript ember.js ecmascript-6 computed-properties


    【解决方案1】:

    后面的记号与 Ember 无关。它们是 ES6 的一部分,称为模板字符串。它们只是使字符串插值更容易。您可以在花括号中包含任何有效的 js 语句并对其进行评估。它们还允许多行字符串。

    我知道的一个要点是模板字符串会立即得到评估。因此不能通过将其分配给变量来重用。变量只会得到评估结果。

    Here is more info about them in MDN.

    【讨论】:

    • 感谢 MDN 链接。我知道它们与 Ember 无关,但这是我第一次看到它们被广泛使用。
    • 确实,Ember 团队的一些核心成员参与了 ecmascript 标准,因此 Ember 试图为 JS 的未来做规划,并尽可能地拥抱即将推出的功能。 es6 模块,自定义元素,……
    • @gonvaled Ya ember 几乎推动了早期采用模块等较新的 es6 功能。我认为此链接可能有助于了解有关模板字符串和 YDKJS 书中的任何陷阱的更多信息。 github.com/getify/You-Dont-Know-JS/blob/master/…
    【解决方案2】:

    它们基本相同。事实上,目前,反引号语法或 es6 template strings 正在被转换回最终代码中的第二个版本。

    有些人可能会争辩说第一种形式更合乎逻辑,并且当使用更简单的变量名时,更具可读性。它还允许对 i18n 库进行代码扫描,例如基于 gettext 的库,以便轻松找到它们。在浏览器广泛支持反引号语法之前,我怀疑他们是否可以对此有所帮助。它来了。 Chrome、Firefox、Safari、Edge 都支持。

    最后,如果你喜欢就使用它们,如果你不喜欢它们就不要使用它们。没关系。

    specs 中的正式定义)

    【讨论】:

      猜你喜欢
      • 2017-12-31
      • 1970-01-01
      • 2016-05-17
      • 1970-01-01
      • 1970-01-01
      • 2014-08-30
      • 2012-09-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多