React-如何使导出组件对其目录私有?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了React-如何使导出组件对其目录私有?相关的知识,希望对你有一定的参考价值。

是否有可能将React组件的导入限制在其自己的目录中?因此,只能在同一目录内导入吗?

例如,我具有以下目录结构:

src/
   apps/
      myapp.js
      /table
         table.js
         table-row.js

文件table-row.js具有以下组成部分

export const TableRow = (row, index) => 
    return <TableRow> ... </TableRow>
;

如何将TableRow设为/table目录的私有文件,所以我不能导入该目录之外的内容?但是table/table.js可以导入吗?

答案

您不能实际上执行此操作,但是我喜欢遵循的模式是执行类似操作

  • src
    • 组件
    • MyComponent
      • MyComponent.jsx
      • PrivateHelperComponent.jsx
      • index.js

其中组件类似于以下内容:

//MyComponent.jsx
const MyComponent = () => 
  return (
    <div>
      ...
      <PrivateHelperComponent />
    </div>
  )
>

export default MyComponent
//PrivateHelperComponent.jsx
const PrivateHelperComponent = () => 
  return (
    <div>
      ...
    </div>
  )
>

export default PrivateHelperComponent
//index.js
export  default  from "./MyComponent"

...现在,从<...>/components/MyComponent导入的界面是“干净的”,您只能导入“默认”组件。

当然,没有什么可以阻止您执行import PrivateHelperComponent from "<...>/components/MyComponent/PrivateHelperComponent",但至少在我看来,它清楚地指出了要导入/重用的meant组件是什么,而没有]]

另一答案

JS中没有可用于导出的访问修饰符(所有导出可用于所有模块;又名公共),因此您无法将导出设为其目录私有。

另一答案

您不能那样做。但是,如果您真的想使其私有,则将表行(不导出)和表放在同一文件中。

以上是关于React-如何使导出组件对其目录私有?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用嵌套路由和私有路由组件在 react.js 中正确构建路由?

如何在 React Router 的多个私有页面上呈现这些组件?

Android安全开发之启动私有组件漏洞浅谈

如何检查给定值是不是是私有路由中的 JWT?

在 iOS8 中如何设置私有文档目录作为存储提供程序应用程序扩展正在使默认文档目录共享?

反应路由器私有路由/重定向不起作用