当前位置:   article > 正文

React--JavaScript 的模块导出和导入机制

React--JavaScript 的模块导出和导入机制

JavaScript 的模块导出和导入机制,尤其是在使用 ES6 模块语法时。让我们详细解释这个过程,并解决你关于导出和导入的疑问。

JavaScript 模块导出和导入

  1. 导出模块

    • 在 JavaScript 中,你可以使用 export 语法将模块中的变量、函数或对象导出,以便其他文件可以导入和使用这些导出的部分。
    • 你可以使用 exportexport default 语法来导出不同的内容。
  2. 导入模块

    • 使用 import 语法可以从另一个模块中导入导出的内容。对于 export default 导出的模块,你可以使用任意名字来导入;对于命名导出(export { ... }),你必须使用与导出时相同的名字。

你的代码解析

  1. import { createSlice } from "@reduxjs/toolkit";
  2. import axios from 'axios'
  3. const channelStore = createSlice({
  4. name:'channel',
  5. initialState:{
  6. channelList:[]
  7. },
  8. reducers :{
  9. setChannels(state,action) {
  10. state.channelList = action.payload
  11. }
  12. }
  13. })
  14. const { setChannelList } = channelStore.actions
  15. const url = 'http://geek.itheima.net/v1_0/channels'
  16. const fetchChannelList = () => {
  17. return async (dispatch) => {
  18. const res = await axios.get(url)
  19. dispatch(setChannelList(res.data.data.channels))
  20. }
  21. }
  22. export { fetchChannelList }
  23. const channelReducer = channelStore.reducer
  24. export default channelReducer
  1. import { configureStore } from '@reduxjs/toolkit'
  2. import counterReducer from './modules/counterStore'
  3. import channelReducer from './modules/channelStore'
  4. export default configureStore({
  5. reducer: {
  6. counter:counterReducer,
  7. channel: channelReducer
  8. }
  9. })

解释

  1. export defaultexport { ... }

    • export default:每个模块只能有一个默认导出(default export)。你可以导出一个默认的对象、函数或类。导入时,可以使用任意名字来接收这个默认导出的内容。
    • export { ... }:可以有多个命名导出(named exports)。在导入时,你必须使用与导出时相同的名字。
  2. 导出和导入的关系

    • 当你在一个文件中使用 export default channelReducer 导出一个默认的 reducer 时,你可以在导入这个模块时使用任意名字,如 import channelReducer from './modules/channelStore'
    • 如果一个模块同时有多个命名导出,如 export { increment, decrement, addToNum },在导入时,你需要使用这些名字来匹配导出的变量名。

为什么导入时名字可以随意

  • 对于 export default 导出的模块,你可以选择任意名称来导入。例如:

 

  1. // 在模块文件中
  2. export default channelReducer;
  3. // 在其他文件中
  4. import myReducer from './modules/channelStore'; // 可以用任意名字

但对于命名导出,导入时必须使用导出时指定的名字。例如

  1. // 在模块文件中
  2. export { increment, decrement, addToNum };
  3. // 在其他文件中
  4. import { increment, decrement } from './modules/someModule'; // 必须匹配

总结

  • export default 允许你在导出模块时只导出一个默认对象、函数或类,你可以使用任何名字来导入它。
  • 命名导出 允许你导出多个命名的对象或函数,导入时需要使用相应的名字。
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/人工智能uu/article/detail/896353
推荐阅读
相关标签
  

闽ICP备14008679号