为用户创建自定义“项目页面”的正确方法是什么?

时间:2019-03-03 22:35:06

标签: javascript php user-input

我正在构建一个使用React作为前端和PHP / MySQL作为后端的Web应用程序。用户应该能够创建自己的“项目”,可以将其视为一组模板页面的实例,这些模板页面的内容将针对特定项目进行定制。例如,Facebook页面或Firebase项目具有默认模板,但是它们的实例可以由用户创建,定制和拥有。我正在尝试创建与此类似的东西。

我假设我有一组默认页面,其中填充了为数据库中的特定项目存储的内容,但是我不确定当用户在浏览器之间导航时如何最好地跟踪正在访问哪个项目项目页面。我可以想到多种方法,例如在PHP中使用GET变量或会话变量,或者在JavaScript中使用本地存储变量,但是我不知道哪种方法最合适。

实现这样的东西的正确方法是什么?

2 个答案:

答案 0 :(得分:1)

有多种实现此功能的策略。我见过Web应用程序可以执行所有操作,从设置cookie或会话变量以跟踪正在查看的项目到使用POST参数,但到目前为止,最常见的方法是GET参数,例如project.php?project_id=7。如果您不喜欢这种外观,则可以始终使用URL重写,以便使用user/project/7之类的东西。

如果绝对必须在所有项目中使URL保持一致,则下一个最佳选择是会话变量或cookie,这将需要一个中间页面来设置cookie或变量,然后重定向到项目页面。

基于此,您可以查询数据库以获取特定模板的布局信息,然后使用React或您使用的任何框架对其进行渲染。

如果您的模板页面具有高度可定制性,那么为每个页面单独创建一个页面会很麻烦。您用php标记了您的问题,所以我假设您正在计划使用PHP实现此行为。优秀!那只是它的目的。我对您的项目设置一无所知,但是根据应用程序的大小,您可以将其分解为最小的可定制组件集,并有条件地呈现其中一个合适的组件,也可以将每个选项直接内联到您的PHP代码中。我也不确定您将React整合到其中的程度如何,但是基本的思考过程是相同的。

答案 1 :(得分:0)

您没有提到构建应用程序所用的内容,但您基本上是在谈论“视图”,这些视图根据用户访问权限和他们正在查看的页面来显示信息。

我将引用有角文档的页面:https://docs.angularjs.org/tutorial/step_09

  

要添加详细视图,我们将把index.html变成所谓的“布局模板”。这是我们的应用程序中所有视图通用的模板。然后,根据当前的“路线”(当前显示的视图),向用户显示其他“部分模板”到此布局>模板中。