【发布时间】:2022-10-08 00:03:06
【问题描述】:
我想知道,如果之前手动硬编码过 JS 组件(例如 React JSX),是否可以创建一个可视化的无代码构建器来处理它们?
让我解释一下我的意思。
假设一个简单的 React 组件 pages/index.js 以前由开发人员手动编写:
function HomePage() {
return <div>Welcome to Next.js!</div>
}
export default HomePage
我们如何使用可视化构建器在前端更改这样的组件?
例如,我们想在现有的div 中添加一个新的 HTML 元素(例如 H1)。
据我了解,构建器首先需要知道 HTML 标记存储在哪个 JS 文件中以更新它。所以我们可以先将id="homepage" 添加到div,然后将关系存储为配置,例如
{"homepage": "pages/index.js"}
现在,如果我们在<div id="homepage"> 中添加一个新元素,构建器会将该元素添加到客户端的div 的DOM 中,然后获取div 的整个更新后的DOM 并写回文件index.js根据配置
好的,但该文件不仅包含 HTML 标记 - 它是 JS (React) 代码。
如何保留所有 JS 代码,例如function HomePage()、return、export default 等等?
作为一种选择,我们可以将所有 JS 代码单独加载为 HTML,包括非 HTML 代码作为#text 节点。然后更新 DOM 并将所有内容重新写入文件。
但这听起来很复杂,可能会导致意想不到的问题。
那么最好的解决方案是什么?
或者也许有现成的特定于 React 的解决方案?
或者,通过可视化构建器解析和重写手动硬编码的组件可能是一个坏主意,唯一的解决方案是将所有内容存储为 JSON,如"homepage":{"div", {"class":""}, "Welcome..."},这样更容易重写? (但需要新的渲染)
【问题讨论】:
标签: javascript reactjs design-patterns architecture software-design