React Native中为何可用非默认名称导入默认导出组件?
为什么自定义名称导入默认导出组件也能正常工作?
这是ES模块默认导出的特性导致的,核心逻辑直白易懂:
- 当模块用
export default StoryBook导出组件时,本质是把StoryBook组件绑定到模块的特殊标识符default上,并没有给它固定的“对外名称”。 - 你写
import 任意变量名 from 'storybook'的时候,其实是把模块里default对应的内容(也就是那个组件)赋值给你自定义的变量名,这个变量名完全由你决定,和模块里的原名称无关。
看你的代码例子:
import StoryBook from 'storybook' // 把默认导出的组件赋值给变量StoryBook import StoryBookX from 'storybook' // 同样把默认导出的组件赋值给变量StoryBookX
这两个变量StoryBook和StoryBookX其实指向的是同一个组件对象,所以在渲染时:
<View> <StoryBook /> </View> <View> <StoryBookX /> </View>
本质上是在渲染同一个组件,自然都能正常工作。
总结:默认导出的内容没有固定的导入名称,你可以随便给它起变量名,只要语法正确,导入后都能正常使用。
内容的提问来源于stack exchange,提问作者Shahjahan Mukhtar
相关产品推荐
相关产品推荐

