如何制作一个动态导航栏,根据事件更改其内容?

问题描述 投票:-3回答:2

举个例子,我想创建一个包含nav barLog in按钮的Sign up,但是当用户登录时,我想要nav bar包含带有用户图像缩略图的Profile按钮和Sign out按钮。

那么实现这一目标的方法和最佳实践是什么?

注意:我不知道这是否是由前端框架实现的,但如果是,则假设我使用reactJSexpressJS运行。

javascript jquery html css reactjs
2个回答
0
投票

您可以使用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文件或脚本。


0
投票

一种方法是在NavBar组件状态中保留一个布尔标志 - isLoggedIn。您可以根据此决定呈现登录和注册或个人资料和退出。

你可以参考这个来理解React.js中的条件渲染 - https://reactjs.org/docs/conditional-rendering.html

© www.soinside.com 2019 - 2024. All rights reserved.