在原版中重写 React 功能组件 javascript
Rewrite react functional component in vanilla javascript
我很难理解通过 es6 的 React 中的功能组件如何通过将道具放在对象中来获取道具作为参数。这是es6特性的一部分吗?或者它是 React 的一部分,无需引用 this.props...
就可以神奇地将道具作为参数通过?如果有人可以用函数为我重写 vanilla js 中的以下组件(不像 Babel repl 那样 React.createElement),那将非常有帮助。
const Repos = ({repos}) => {
return (
<div>
<h3> User Repos </h3>
<ul className="list-group">
{repos.map((repo, index) => {
return (
<li className="list-group-item" key={repo.name}>
<h4><a href={repo.html_url}>{repo.name}</a></h4>
<p>{repo.description}</p>
</li>
)
})}
</ul>
</div>
)
}
它使用 destructuring 是的,它是标准的一部分。
它所做的基本上等同于说
const repos = props.repos;
如果你有 props
作为参数你会怎么做
const Repos = (props) => {
const repos = props.repos;
return (
<div>
(...)
</div>
)
}
在 ES3 中,您还必须拼出 function 关键字并使用 var
而不是 const
。
var Repos = function(props) {
var repos = props.repos;
return (
<div>
(...)
</div>
)
}
所以唯一的 React 魔法是使用 JSX 在代码中内联标记。
这是一个解构赋值,是 ES2015 规范的一部分。 Repos
是一个需要 Object
的函数。当调用 Repos
时,它会评估解构模式并将结果分配给它的单个参数:
const Repos = ({repos}) => {
return repos;
}
const props = {repos: [1,2,3]};
const foo = {bar: "baz"};
console.log(Repos(props));
console.log(Repos(foo));
属性 (repos
) 的名称和实际传递给 Repos
的参数名称相同,因为给定的解构模式没有定义一个不同的(实际上 ({repos})
是 shorthand for ({repos:repos})
)。但是,不同的名称可以更清楚地说明幕后发生的事情:
const Repos = ({repos:arg}) => {
return arg;
}
const props = {repos: [1,2,3]};
console.log(Repos(props));
请注意,这与默认参数无关。
我很难理解通过 es6 的 React 中的功能组件如何通过将道具放在对象中来获取道具作为参数。这是es6特性的一部分吗?或者它是 React 的一部分,无需引用 this.props...
就可以神奇地将道具作为参数通过?如果有人可以用函数为我重写 vanilla js 中的以下组件(不像 Babel repl 那样 React.createElement),那将非常有帮助。
const Repos = ({repos}) => {
return (
<div>
<h3> User Repos </h3>
<ul className="list-group">
{repos.map((repo, index) => {
return (
<li className="list-group-item" key={repo.name}>
<h4><a href={repo.html_url}>{repo.name}</a></h4>
<p>{repo.description}</p>
</li>
)
})}
</ul>
</div>
)
}
它使用 destructuring 是的,它是标准的一部分。
它所做的基本上等同于说
const repos = props.repos;
如果你有 props
作为参数你会怎么做
const Repos = (props) => {
const repos = props.repos;
return (
<div>
(...)
</div>
)
}
在 ES3 中,您还必须拼出 function 关键字并使用 var
而不是 const
。
var Repos = function(props) {
var repos = props.repos;
return (
<div>
(...)
</div>
)
}
所以唯一的 React 魔法是使用 JSX 在代码中内联标记。
这是一个解构赋值,是 ES2015 规范的一部分。 Repos
是一个需要 Object
的函数。当调用 Repos
时,它会评估解构模式并将结果分配给它的单个参数:
const Repos = ({repos}) => {
return repos;
}
const props = {repos: [1,2,3]};
const foo = {bar: "baz"};
console.log(Repos(props));
console.log(Repos(foo));
属性 (repos
) 的名称和实际传递给 Repos
的参数名称相同,因为给定的解构模式没有定义一个不同的(实际上 ({repos})
是 shorthand for ({repos:repos})
)。但是,不同的名称可以更清楚地说明幕后发生的事情:
const Repos = ({repos:arg}) => {
return arg;
}
const props = {repos: [1,2,3]};
console.log(Repos(props));
请注意,这与默认参数无关。