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