JavaScript实现登入以及退出登入验证本地存储登入的功能

#JavaScript实现登入以及退出登入验证本地存储登入的功能
##注册页面的登录上个文章有详细的代码实现

模块一:先实现登录页面
	1、利用事件委托和事件对象实现tab栏切换,满足两种登录方式
	2、需要实现用户输入用户名 和密码后,将用户的信息保存到本地存储,然后跳转首页    

在这里插入图片描述

#####模块一代码如下
在这里插入代码片
```<script>
//1、 tab栏切换  事件委托
    const tab_nav = document.querySelector('.tab-nav')
    const tab_pane = document.querySelectorAll('.tab-pane')
    tab_nav.addEventListener('click',function (e) {
      if (e.target.tagName === 'A'){
        // 先清除类 active类名
        tab_nav.querySelector('.active').classList.remove('active')
        // 添加类
        e.target.classList.add('active')
          // 2、点击那个就将相应的盒子的none改为block
          for (let i = 0;i < tab_pane.length;i++) {
          tab_pane[i].style.display = 'none'

        }
        // 3、然后点击那个a 就显示相索引号的大盒子
        tab_pane[e.target.dataset.id].style.display = 'block'

      }
    })

    // 点击提交模块
    const form = document.querySelector('form')
    const agree = document.querySelector('[name=agree]')
    const username = document.querySelector('[name=username]')
    form.addEventListener('submit',function(e) {
      // 阻止默认提交
      e.preventDefault()
      // 判断是否勾选同意协议
      if (!agree.checked) {
        return alert('请勾选同意协议')
      }

      // 勾选后 点击登录则
      // 存储到本地
      localStorage.setItem('xtx-uname',username.value)
      // 跳转首页
      location.href = './index.html'
    })


    </script>

模块二:需要实现的功能就是
1、声明一个渲染函数 ,只要登录页面一跳转过来,就直接读去本地存储的用户信息。
2、然后进行判断,如果本地存储里面有刚才用户跳转 过来之前登录的信息,我们就直接将该信息渲染到对应的视图标签上。如果不成立,则不渲染保持默认即可。
3、最后,我们就剩下退出登录了,只要用户一点击,我们立马就将用户所在本地存储的信息删除掉,然后在次调用我们实现封装好的render渲染函数,重新渲染视图,即可实现用户登录和注册了。

###效果图实现
在这里插入图片描述





    // 获取需要操作和渲染视图的标签
    const xtxli1 = document.querySelector('.xtx_navs li:first-child')
    const xtxli2 = xtxli1.nextElementSibling
    // 封装渲染函数 登入和退出都需要渲染视图
    function render () {
      // 2、读取本地存储
      const uname = localStorage.getItem('xtx-uname')
      console.log(uname)
      // 如果本地有你的账户信息就登入成功  渲染相应视图
      if (uname) {
        xtxli1.innerHTML = `
        <li>
          <a href="javascript:;"><i class="iconfont icon-user">${uname}</i></a>
        </li>
        `
        xtxli2.innerHTML = `<a href="javascript:;">退出登录</a>`
        // 没有信息则恢复默认视图
      } else {
        xtxli1.innerHTML = `<a href="./login.html">请先登录</a>`
        xtxli2.innerHTML = `<a href="./register.html">免费注册</a>`
      }
    }
    // 调用函数
    render()

    // 退出登录模块
    xtxli2.addEventListener('click',function () {
      // 删除本地存储数据
      localStorage.removeItem('xtx-uname')
      // 重新渲染
      render()
    })
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

脱发使我稳重

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值