js判定是否首页进入页面

  • Post author:
  • Post category:其他


在一个页面,通过

localStorage

存储指定 key ,并通过 key 的 value 判断不同的状态。

具体如下:

localStorage 相较于 sessionStorage 的优点在于, localStorage 的数据会长期存储,即当页面会话结束(页面关闭)时,数据也会保留,而 sessionStorage 会被删除。 localStorage 主要有以下几种方法:

setItem(va, data)   // 增加
getItem(va)         // 获取
removeItem(va)      // 删除
clear()             // 移除所有



1 定义页面 key 值和对应的 value 值

// key值自定义,无特殊要求,只作为判断的依据
const key = YOUR_PAGE_NAME

// 这里写入的key值为当日时间,可以确保第二天时依然能够进行首次判定
const dayDate = new Date().toDateString()



2 通过

getItem

获取 key 值

获取 key 的 value ,判断是否为当日首次

// 获取key值,不为 dayDate 时,即表示当日首次打开本页
const isFirstOpen = localStorage.getItem(key) !== dayDate



3 通过

setItem

存储指定 key 值为 value

进入新的一天, dayDate 改变,与key比较结果为 false ,表示新的一天首次打开本页;紧随其后,重新给key赋值 dayDate ,确保这天再次打开本页时, key 的 value 与 dayDate 一致

// 在本地存储中写入key值为value
localStorage.setItem(key, dayDate)



示例

const dayDate = new Date().toDateString() // 获取当日信息 Wed Jul 20 2022
const NOW_DATE = 'NOW_DATE' // localStorage中用作存取的标识
...
useEffect(() => {
	if (localStorage.getItem(NOW_DATE) === dayDate) { // 当天
		... // 表示当天已经打开过本页面,dosomething
		return
	}
	// 不在同一天,也就是新的一天第一次打开本页面
	localStorage.setItem(NOW_DATE, dayDate)
	... // 表示当天第一次打开本页面,dosomething
}, [])



版权声明:本文为qq_30997503原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。