16

Javascript でこれはどういう意味ですか? これはreact-routerの例で見つけました

var { Route, Redirect, RouteHandler, Link } = Router;

browserify で実行すると、次のエラーが表示されます。

"Uncaught SyntaxError: Unexpected token {"

https://github.com/rackt/react-router/blob/master/examples/dynamic-segments/app.js

Esprima も同じエラーを返します: http://esprima.org/demo/validate.html

4

3 に答える 3

24

どうやらそれは破壊割り当てと呼ばれています。

ここの別の投稿から:

{x, y} = foo;

と同等です

x = foo.x;
y = foo.y;

これは ECMAScript 6 の一部であり、Facebook の JSX 変換にはオプションのフラグがあり、選択した ES6 構文 (分解を含む) を ES5 互換の構文にトランスパイルできます

マイク・クリステンセンによる回答付きの元の投稿は次のとおりです。

javascript変数名の周りの{中括弧}は何を意味しますか

于 2014-11-25T20:55:29.673 に答える
0

これは JavaScript ではなくJSXファイルです。React.jsの一部として Facebook によって発明されました。実行前に JavaScript ファイルにコンパイルされます。ファイルには、前のコミットで @jsx プラグマがありました: https://github.com/rackt/react-router/commit/3abe98444481598beef22d3af2bf01effc556c6b

JSX では、次のようなことができます。

// Using JSX to express UI components.
var dropdown =
  <Dropdown>
    A dropdown list
    <Menu>
      <MenuItem>Do Something</MenuItem>
      <MenuItem>Do Something Fun!</MenuItem>
      <MenuItem>Do Something Else</MenuItem>
    </Menu>
  </DropDown>;

render(dropdown);

この

var HelloMessage = React.createClass({
  render: function() {
    return <div>Hello {this.props.name}</div>;
  }
});

React.render(<HelloMessage name="John" />, mountNode);
于 2014-11-25T20:54:14.223 に答える