Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 为什么要在这里反应?导入*作为从';反应';_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 为什么要在这里反应?导入*作为从';反应';

Javascript 为什么要在这里反应?导入*作为从';反应';,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我看到的大多数导入模块的示例都使用小写;e、 g 将*作为工具从“/tools”导入 我通常看到的规则是,如果它是一个构造函数,那么使用PascalCase;否则使用camelCase 然而,我总是将import*视为来自“React”的React,即使React不是构造函数(不能执行newreact())。为什么它总是大写,从JavaScript风格的角度来看,我会选择将库或模块(如“/tools”)大写 我的大部分背景都是在C和C++中,所以我倾向于将库(导入DateFns从日期FNS '/

我看到的大多数导入模块的示例都使用小写;e、 g

将*作为工具从“/tools”导入

我通常看到的规则是,如果它是一个构造函数,那么使用
PascalCase
;否则使用
camelCase

然而,我总是将
import*视为来自“React”的React
,即使React不是构造函数(不能执行
newreact()
)。为什么它总是大写,从JavaScript风格的角度来看,我会选择将库或模块(如“/tools”)大写


我的大部分背景都是在C和C++中,所以我倾向于将库(<代码>导入DateFns从日期FNS '/COD>,<代码>导入*作为'/.Tooe' //Cube >的工具。

< P>因为它是命名空间,我猜是因为它是框架品牌。作为框架的品牌往往更容易资本化(Vue、主干、余烬等)

当使用Typescript作为javascript超集时,将名称空间大写是非常有意义的,因为它具有类似C#的风格


但即使使用新的ECMAScript版本,将名称空间资本化也有好处。我认为它使事情更具可读性。

因为它是一个名称空间,我猜是因为它是一个框架品牌。作为框架的品牌往往更容易资本化(Vue、主干、余烬等)

当使用Typescript作为javascript超集时,将名称空间大写是非常有意义的,因为它具有类似C#的风格


但即使使用新的ECMAScript版本,将名称空间资本化也有好处。我想这会让事情更具可读性。

我只是偶然发现了这个老问题

'react'
模块需要作为
react
(精确拼写和大写)导入的主要原因是为了让JSX正常工作

从:

从根本上说,JSX只为
React.createElement(组件、道具等)函数提供语法上的支持

……及以后:

反应必须在范围内

由于JSX编译成对
React.createElement
的调用,
React
库也必须始终在JSX代码的作用域内


示例

JSX中的此组件:

const SimpleComponent = () => (<div>simple component</div>);
…因此,
React
必须存在于作用域中,否则编译后的代码在运行时将抛出此错误:

ReferenceError:未定义React


我只是偶然发现了这个老问题

'react'
模块需要作为
react
(精确拼写和大写)导入的主要原因是为了让JSX正常工作

从:

从根本上说,JSX只为
React.createElement(组件、道具等)函数提供语法上的支持

……及以后:

反应必须在范围内

由于JSX编译成对
React.createElement
的调用,
React
库也必须始终在JSX代码的作用域内


示例

JSX中的此组件:

const SimpleComponent = () => (<div>simple component</div>);
…因此,
React
必须存在于作用域中,否则编译后的代码在运行时将抛出此错误:

ReferenceError:未定义React


不确定它是否有用,但从TypeScript定义文件
@types/react/index.d.ts
react
是一个
名称空间
。在这方面没有规则,甚至没有共识
React
使用大写,
angular
使用小写。不确定它是否有用,但从TypeScript定义文件
@types/React/index.d.ts
React
是一个
名称空间
。在这方面没有规则,甚至没有共识
React
使用大写,
angular
使用小写。我认为“名称空间”是有意义的,我可以理解你对品牌的意思。如果我们有一个Tools模块,那么它本质上是一个杂项方法的集合,其行为类似于一个名称空间,它的大小写似乎不是坏的或非惯用的JS风格。这基本上是正确的。在Facebook上,如果导出的值是对象或构造函数,则模块导入将大写。只导出“普通”函数的模块都是小写的。@FelixKling导出函数或值集合时如何?@LukeWilliams:这些将作为对象的属性导出。@LukeWilliams:我们还没有切换到es6模块语法。我们仍然在使用commonjs模块语法,即
module.exports={…}
。我认为“名称空间”是有意义的,我可以理解你对品牌的意思。如果我们有一个Tools模块,那么它本质上是一个杂项方法的集合,其行为类似于一个名称空间,它的大小写似乎不是坏的或非惯用的JS风格。这基本上是正确的。在Facebook上,如果导出的值是对象或构造函数,则模块导入将大写。只导出“普通”函数的模块都是小写的。@FelixKling导出函数或值集合时如何?@LukeWilliams:这些将作为对象的属性导出。@LukeWilliams:我们还没有切换到es6模块语法。我们仍然使用commonjs模块语法,即
module.exports={…}