#javascript #reactjs
#javascript #reactjs
Вопрос:
Мне кажется, что я видел обе версии creatClass в React, причем первая более очевидна в документах. Есть ли какие-либо различия между двумя, кроме стилистических? Просто кажется странным, что первый стиль выглядит так, как будто он принимает объект, тогда как второй — это просто область видимости с любыми функциями, которые вы хотите в нее запустить.
var Greeting = React.createClass({
someFunction: function () {
...
},
getDefaultProps: function() {
return {
name: 'Mary'
};
},
// ...
});
против.
var Greeting = React.createClass({
someFunction () {
...
}
getDefaultProps () {
return {
name: 'Mary'
};
}
// ...
});
Комментарии:
1. Последний — ECMAScript6
2. Чтобы расширить то, что сказал Айзек, второй вариант — это просто объектный литерал с сокращенными определениями методов ES6.
3. в документе object literal используются запятые, но я не вижу, чтобы запятые использовались в другой работе, это необязательно?
4. Ваш второй пример завершился бы неудачей без запятых. То, о чем вы думаете, это использование
class Greeting extends React.Component { method1() {} method2() {} }
5. Можете ли вы показать, где вы это видели? Во втором примере между функциями нужны запятые
Ответ №1:
Это не с react
. Это функция ES6, называемая объектными литералами
const a = 10;
const b = {
a, //which is equal to a: a
}
function a(){}
const c = {
a, //which is equal to a: function a(){}
}