Javascript 入口点组件(网页包)的参数

Javascript 入口点组件(网页包)的参数,javascript,webpack,entry-point,Javascript,Webpack,Entry Point,我的webpack配置使用main.jsx作为入口组件 这一切都是如此,我这样称呼它: 新myApp({ targetElem:document.querySelector(“#订单”), productData:['test1','test2','test3'] }); 您似乎希望作为参数传递的是: 1) 静态DOM元素 2) 服务器数据 1) DOM元素通常只添加到myApp.js中。这只是DOM爬行,如果将其放在一个脚本或另一个脚本中,则没有实际的好处 2) 在React中进行初始渲染

我的webpack配置使用main.jsx作为入口组件

这一切都是如此,我这样称呼它:


新myApp({
targetElem:document.querySelector(“#订单”),
productData:['test1','test2','test3']
});

您似乎希望作为参数传递的是:

1) 静态DOM元素
2) 服务器数据

1) DOM元素通常只添加到
myApp.js
中。这只是DOM爬行,如果将其放在一个脚本或另一个脚本中,则没有实际的好处

2) 在React中进行初始渲染后,可以从React组件本身执行基本调用:

  • componentDidMount
    如果您使用的是常规类组件
  • useffect(()=>{//here},[])如果使用带挂钩的功能组件
  • 当然,如果使用Redux或
    useDispatch
    ,也可以分派操作
只是说您不需要从全局范围传递这些变量

使用
useState
hook,您也可以在React组件中使用本地状态

编辑您的评论:

在这种情况下,您可以使用另一个React组件来处理用户输入,并将其传递给该组件,例如使用Redux。显然,您总是可以使用数据属性通过DOM传递数据,例如,就像以前那样,但这已经不再常见了。
我以前使用过预生成的json,我处理这个问题的方法是使用SSR和Redux来自动补充存储中的状态:


无论如何,您可以从窗口对象获取预加载状态

您希望从全局作用域传递这些参数的具体原因是什么?@Trace是的,react应用程序需要能够获取参数。如果你有其他的想法如何做到这一点,我很想听听。我想让用户能够通过使用带有参数的新myApp()调用该应用程序。这方面的一个用例是内容管理系统,其中json是预生成的,只是作为参数传递给ReactJS应用程序。我还想实现的是,一个人可以决定在哪个DOM元素中呈现react应用程序。因此,你的答案对我来说毫无用处,我知道如何使用componentDidMount()和useEffect(),但我需要targetElem,因为我想将整个reactjs应用程序呈现到这个元素中。但是你是如何将json添加到可以将其水合为redux的程度的呢?我不想从HTML中读取它。@Gutelaunetyp在Redux提供的示例中,您从window对象获取它,然后在创建存储时将其传递给Redux存储。正如他们在文档中以这种方式推荐的那样,我同意了,我不认为这会成为问题的原因。使用窗口对象(全局作用域)本身只会对可能的名称冲突(以及在多个位置使用空指针)产生不利影响,这就是为什么在过去他们会对窗口对象命名。但在这里,所有的JS逻辑都与ES6模块中的webpack捆绑在一起,所以我看不出它有什么关系,因为它只是引导。