React 之export和export default

一、 ES6的模块化的基本规则或特点

  • 每一个模块只加载一次, 每一个JS只执行一次, 如果下次再去加载同目录下同文件,直接从内存中读取。 一个模块就是一个单例,或者说就是一个对象;
  • 每一个模块内声明的变量都是局部变量, 不会污染全局作用域
  • 模块内部的变量或者函数可以通过export导出
  • 一个模块可以导入别的模块

https://es6.ruanyifeng.com/

es6中export和export default的区别

  • export与export default均可用于导出常量、函数、文件、模块

  • 你可以在其它文件或模块中通过import+(常量 | 函数 | 文件 | 模块)名的方式,将其导入,以便能够对其进行使用

  • 在一个文件或模块中,export、import可以有多个,export default仅有一个

  • 通过export方式导出,在导入时要加{ },export default则不需要

其实很多时候export与export default可以实现同样的目的,只是用法有些区别。注意第四条,通过export方式导出,在导入时要加{ },export default则不需要。使用export default命令,为模块指定默认输出,这样就不需要知道所要加载模块的变量名。

React中使用export导出类可以有两种方法

1. export default classname

这种导出方式与export default class classname extends React.class相同

在其他文件中引用时采取如下方式

import classname form path

例如:

Com.js

class Welcome extends React.Component{
    render(){
        return <h1> hello,{this.props.name}</h1>
    }
}
 
function App(){
    return (
        <div>
            <Welcome name="Sara"/>
            <Welcome nmae="Peng"/>
        </div>
    );
}
 
export  default App;

index.js

import App  from './components/Com';
 
const element=<App/>;
ReactDOM.render(element, document.getElementById('root'));

2. export {classname1,classname2}

在其他文件中引用时采用如下方式

import {classname1,classname2} from path

import {classname1} //注意引用一个类时也要加上{}

例如:

class Welcome extends React.Component{
    render(){
        return <h1> hello,{this.props.name}</h1>
    }
}
 
function App(){
    return (
        <div>
            <Welcome name="Sara"/>
            <Welcome nmae="Peng"/>
        </div>
    );
}
 
export  {Welcome,App};

index.js

import {App}  from './components/Com';
 
const element=<App/>;
ReactDOM.render(element, document.getElementById('root'));


作者:三也视界
链接:https://www.jianshu.com/p/453665331e97
来源:简书
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
posted @ 2021-11-22 18:05  brave-sailor  阅读(923)  评论(0编辑  收藏  举报