Javascript 哪种语法更典型,如果有的话(版本16)?

Javascript 哪种语法更典型,如果有的话(版本16)?,javascript,reactjs,syntax,Javascript,Reactjs,Syntax,我对React非常陌生,我看到了很多语法略有变化的示例。由于我的无知和无能,我分不清哪一个更合适,哪一个是像我这样困惑的人创造的。此外,我可以想象这些变化是由于库的不同版本造成的 我确实理解以下两个示例在JS术语中的区别,但我想知道是否有任何不适合React应用程序的地方。或者,可能,如果没有人知道,而且两种方式都是完全可以接受的 显式导入 import * as React from "react"; import { render, version } from "react-dom";

我对React非常陌生,我看到了很多语法略有变化的示例。由于我的无知和无能,我分不清哪一个更合适,哪一个是像我这样困惑的人创造的。此外,我可以想象这些变化是由于库的不同版本造成的

我确实理解以下两个示例在JS术语中的区别,但我想知道是否有任何不适合React应用程序的地方。或者,可能,如果没有人知道,而且两种方式都是完全可以接受的

显式导入

import * as React from "react";
import { render, version }  from "react-dom";
import MainArea from "./components/MainArea";

const ver = version;
render(<MainArea />, document.getElementById("app"));
import * as React from "react";
import * as ReactDOM from "react-dom";
import MainArea from "./components/MainArea";

const ver = ReactDOM.version;
ReactDOM.render(<MainArea />, document.getElementById("app"));
import*as React from“React”;
从“react dom”导入{render,version};
从“/components/MainArea”导入MainArea;
const ver=版本;
render(,document.getElementById(“app”);
隐式导入

import * as React from "react";
import { render, version }  from "react-dom";
import MainArea from "./components/MainArea";

const ver = version;
render(<MainArea />, document.getElementById("app"));
import * as React from "react";
import * as ReactDOM from "react-dom";
import MainArea from "./components/MainArea";

const ver = ReactDOM.version;
ReactDOM.render(<MainArea />, document.getElementById("app"));
import*as React from“React”;
从“react dom”导入*作为react dom;
从“/components/MainArea”导入MainArea;
const ver=ReactDOM.version;
ReactDOM.render(,document.getElementById(“app”);

我已经看到并使用了这两种导入样式。对于我正在积极修改的代码,我倾向于使用隐式导入。在导入的模块中添加内容时,您不必重复

例如,替换

import {
    action1,
    action2,
    ...,
    actionN
} from './actions';

这意味着您只需在
/actions.js
中添加操作,而无需添加操作,然后显式引用它


根据经验法则:如果所讨论的模块不经常更改,则更喜欢显式导入;如果命名空间中导入了>3个名称,则更喜欢隐式导入,或者您预期该模块会定期更改。

两者都很好,但工作原理相同。用你更喜欢的。(如果您有很多导入,并且不熟悉每个模块导出的内容,那么您可能更喜欢名称空间导入)。我认为第一个更有意义,因为您只导入您需要的内容。@Anas不,没有什么区别。两者都加载相同的模块,并且都可以进行同样的树震动。@Bergi不知道树震动对两者都有效,谢谢你让我知道。