React - 如何导出纯无状态组件
React - How to export a pure stateless component
如何导出无状态纯哑组件?
如果我使用 class 这有效:
import React, { Component } from 'react';
export default class Header extends Component {
render(){
return <pre>Header</pre>
}
}
但是,如果我使用纯函数,我无法让它工作。
import React, { Component } from 'react';
export default const Header = () => {
return <pre>Header</pre>
}
我是不是漏掉了一些基本的东西?
ES6 不允许 export default const
。您必须先声明常量然后导出它:
const Header = () => {
return <pre>Header</pre>
};
export default Header;
存在此约束是为了避免写入被禁止的 export default a, b, c;
:默认情况下只能导出一个变量
作为旁注。从技术上讲,您可以 export default
无需先声明变量。
export default () => (
<pre>Header</pre>
)
你可以通过两种方式做到这一点
const ComponentA = props => {
return <div>{props.header}</div>;
};
export default ComponentA;
2)
export const ComponentA = props => {
return <div>{props.header}</div>;
};
如果我们使用 default
导出,那么我们会像这样导入
import ComponentA from '../shared/componentA'
如果我们不使用 default
导出,那么我们会像这样导入
import { ComponentA } from '../shared/componentA'
您也可以使用函数声明代替赋值:
export default function Header() {
return <pre>Header</pre>
}
在您的示例中,您已经使用了大括号和 return
,因此这显然完全符合您的需求。
如何导出无状态纯哑组件?
如果我使用 class 这有效:
import React, { Component } from 'react';
export default class Header extends Component {
render(){
return <pre>Header</pre>
}
}
但是,如果我使用纯函数,我无法让它工作。
import React, { Component } from 'react';
export default const Header = () => {
return <pre>Header</pre>
}
我是不是漏掉了一些基本的东西?
ES6 不允许 export default const
。您必须先声明常量然后导出它:
const Header = () => {
return <pre>Header</pre>
};
export default Header;
存在此约束是为了避免写入被禁止的 export default a, b, c;
:默认情况下只能导出一个变量
作为旁注。从技术上讲,您可以 export default
无需先声明变量。
export default () => (
<pre>Header</pre>
)
你可以通过两种方式做到这一点
const ComponentA = props => {
return <div>{props.header}</div>;
};
export default ComponentA;
2)
export const ComponentA = props => {
return <div>{props.header}</div>;
};
如果我们使用 default
导出,那么我们会像这样导入
import ComponentA from '../shared/componentA'
如果我们不使用 default
导出,那么我们会像这样导入
import { ComponentA } from '../shared/componentA'
您也可以使用函数声明代替赋值:
export default function Header() {
return <pre>Header</pre>
}
在您的示例中,您已经使用了大括号和 return
,因此这显然完全符合您的需求。