举个例子,我想创建一个包含nav bar
和Log in
按钮的Sign up
,但是当用户登录时,我想要nav bar
包含带有用户图像缩略图的Profile
按钮和Sign out
按钮。
那么实现这一目标的方法和最佳实践是什么?
注意:我不知道这是否是由前端框架实现的,但如果是,则假设我使用reactJS
与expressJS
运行。
您可以使用AJAX调用或后端执行前端,但我建议您在后端执行此操作,这样您就不会呈现不必要的HTML-JS代码。
基本上你要做的就是看看你的Framework中的哪个地方(我还没有使用过expressJs和reactJS)存储用户登录数据,如果有变量告诉你用户是否经过身份验证。
然后你必须创建一个模板,从控制器调用一个视图,并接收有关用户是否登录的信息(例如,在Django中,您可以将views.py中的变量传递给模板)
您必须创建一个if
子句,用于计算布尔值,您可以在其中指明用户是否经过身份验证,并根据该值呈现不同的HTML / CSS。
您必须在导航栏中包含此内容并准备类似的内容
{% if user_logged_in %}
<html code for logged in user with profile picture and all that>
{% else %}
<html code with login buttons>
{% endif %}
我使用的是django-template语言,但我确信在你的情况下有一种特定的写法。
您也可以在标记中执行此操作以加载不同的css文件或脚本。
一种方法是在NavBar组件状态中保留一个布尔标志 - isLoggedIn。您可以根据此决定呈现登录和注册或个人资料和退出。
你可以参考这个来理解React.js中的条件渲染 - https://reactjs.org/docs/conditional-rendering.html