00:00
甚至于说浏览器关掉以后再访问也要登录上是吧?那说明我把有者只放到内存里面行吗?不行,我一刷新内存数据是不是清理了,甚至说我关注浏览记忆那更没了是不是?那这个时候就要说明我们应该将user者存到一个什么?刷新以后还存在关掉浏览器,还存在关掉电脑依然存在的位置。哪个位置合适啊?有一个东西叫local storage,用过吗?有没有用过它有个什么特点?它是不是持久化存储或者永久化存储对不对,那也就是说关掉浏览器,关掉电脑会影响它消失吗?不影响。那他们不影响我是不是就可以放里面到时候再读啊。听懂了吧,那也就是说我登录成功,我仅仅是保存在内存里面够吗。不够,还需要保证呢。
01:01
我们的logo是多少,里面简称logo里面是不是能听懂不,那这个时候啊来。Log的存储,我们会专门去写一个模块。叫啊storage就是存储数据的啊,存储的一个啊工具函数工具模块里面呢,会提供好几个方法,大家看到C与U的什么意思。保存有get有有保存必然是不要有可能读啊。这能不能看到啊,再一个什么意思,移除,也就是我在登出的时候,我是不是应该有个退出登录的功能,那我应该干嘛去删掉这个优者吧,这能听懂不好,我们来去做一下看好了。我来再去写一个工具模块。再去写一个工具模块,JS文件叫什么呢?叫storage。
02:07
这个是用来干嘛的,我们来进行,嗯,Local啊,数据存储管理的工具模块,它应该要提供好一些方法吧。是否我们前面当然提供多个方法,是不是可以分别暴露,当然可不可以一次性暴露?可以,上一次我们是多次暴露的,对不对,我们这一次换成一次性暴露一个portt,什么default,一个对象可以吧,啊,这个对象是不是应该有三个方法。哪三个呢?第一个保存,我们现在操作目标是不是优者呀,那就保存优者还有什么操作。读起还一个删除,就这么简单了。这能懂吗?能懂来,我们现在写个保存user的方法,那就来一个方法叫save user可以不OK吧,那你说我的函数要给你接受一个什么,我要保存一个有的去,你得给我传一个什么。
03:18
就是就是你我要保存优者,那你说你要告诉他什么。你们告诉他有了?是不是外面是不是有user,有的好,我们要用到一个东西叫local好吗?Storage,它有一个方法叫set item。能不看到,哎传的参数刚刚什么类型啊,首先K是不是字符串,Value也是什么字符串,这个地方就要说一个事情来啊,我的K我自己设计个名字吧,比如说叫游者下划线K行不行可以吧,关键是我传他合不合适。他刚才说他要接受的是个什么东西,是一个字符串,而我传给他的是个什么对象,它就默认会调用对象的通讯方法吧,而一个对象的求训方法是个什么样子,不知道还记不记得啊,就是这样一个串。
04:16
啊,小写大写。你说我存一个这文本有用吗?没用,将来是不是要读成对象的呀?你这能读成对象吗?不然我们应该存的是这一个对象的什么节省格式的字符串对不对?所以我需要干嘛省点使均犯他把。听懂不听懂,那这样就能保存,同理,是不是可以干嘛去读取,那我来个get user可以吧,可以吧,那get user的时候就不需要传什么参数了。只需要return,要返回一个优质对象吧。好来怎么做local storage。
05:04
点get是不是要传一个K啊,那K自然是我这个U的下划线K呗,对不对?好,现在我要问大家,你说这个值啊,有如果有值是个什么类型。是个阶省格式的字符串吧。那要万一没子。我是不是有可能第一次的时候取不到值吧,那取不到值会怎么样呢?跟大家说一下结果会返回了。就是说白了没有数据嘛,你没有对应的数据存储了,返回去了,能听到吧,那这个时候这样好吗。不好,也就是说如果没有存储数据,那我去取,最好是给我返回一个什么。空对象。听懂了吧,这样我再点什么属性的话,它不会报错,至少对不对。能理解不好,那这个怎么做呢。来,首先我们社交对象假设它如果有数据,我们应该用Jason点什么pass去解析对不对?
06:06
但是这样好吗?不好,因为有一种情况,它有可能是浪,对不对,浪的话解决出来是不是就不太好了。那应该怎么做呢?如果是让我是不是希望最终是个空对象吧?那你说我这么写对不对?是这个意思吗?我这个地方应该这么写。看好了,而且应该这么整。这什么意思?大家想,也就是我pass的是谁,如果这个有值,是不是pass的是他,如果没值了。Pass的是这个是不是,为什么我这边要加个单引号,我不加单引号不行吗。这一个pass是接受一个阶省格式的字符串对不对,你要不加代号还是接省格式的字符串吗?不是那个对象了,是不是你类型都不对吧,这个能不懂,难道那最后一个最简单。
07:12
叫remove user或者是delete user是不是都行能看到不好,那这个时候我们就很简单了,需要干嘛去了啊。Local storage。点什么remove item,直接传一个有着下划线那这些名字。必须要求要什么,是不是要一致?如何保证你不出错了?其实最好的方式是先要在外面定义常量。接着用这个常量名来代替。能听到不,那这个时候你写长按名啊,出错的几率就会小很多。
08:05
但是注意啊,千万千万别怎么写了,别这么写。对吗?这样写不对,因为一个大写的一个什么小写的值,前面都是十本子上用的小写的值对不对,而你用的是什么大写的名称对不对,这个是不对的啊,注意这个事情。这能不能看到,那也就是说现在我是不是用了原生的语法来做的这样一个封装。能听到,不但是这个原生UR封装啊,对于有些地板浏览器是不太兼容的,嗯,那这个东西怎么做呢?其实啊,后面我还搜索了一下,有这样一个库啊,有这样一个库可以去做哪个库呢?就有这样一个是多少这样一个库,那我现在想知道它用法,我该怎么办呢?是不是去get up上面搜啊,我们说一旦知道库名以后,是不是可以通过get up上面去搜。
09:03
那种小裤它是在印象应急中文里面是没有的啊,应中文相对来说比较大型的裤腿有来。来,我们来搜一下叫什么十度,十度什么意思?啊,存储的意思,我们不是要太,我们是不是要GS的。啊,所以先过滤一把啊,最终呢,用的是应该是用的是这个。大家看到它这里有个说明,进去看一下才知道啊,进去看一下你就清楚了,这是一个什么。跨浏览器上的数据存储。针对所有的情况。嗯。有金融所有的浏览器啊,这里面它有一些说明,其实它的语法非常简单,大家看到它是不是得到有一个对象嘛,这个对象有一个什么S方法,传一个名字,传一个值A,它是不是直接就支持对象的模式。但他传的是对象吗?必然不是。
10:00
他知道判断你的这个是不是对象类型对不对,如果是对象类型,它是不是帮你转换成什么接省的字符串,听懂不?那这样不用我转了吧,好,Get也是告诉大家get,如果你返回来是个阶层格式的对象或者数组,它都会把你自动转好。能听懂不?不然的话要它干嘛,是不是肯定是不仅是能做金融性的处理,还能去让我的编码更加什么简洁,听懂了不?啊,下面是不是啊,我主要是不是要这三个方法,Set get以及什么remove,那也就是说如果我用上多该怎么写呢?我来写一写,很简单的事啊,因为我们这个S多是不是已经下载了,看一下啊,没什吧。没问题,好了,下面我们这个事情,看我把这个数式掉,我们该怎么做啊,做点什么S。K是谁有K这个是不很简单。
11:07
能听懂吧,能听懂好下面这一个了,谁啊度点get查一个什么有着K单,如果没有值,他肯定不会去整个对象的,所以说这里面最好当个什么是。能听到吧,如果他没获取到值,直接是不是整一个对象返回回去。看到吧,他已经解析好的,当然这个解析好的,那就不知道他有没有去,如果空会不会碰撞的对象了,那我这么写是不是就会比较保险。好,下面这个,那这个就差不多了,十度点什么,它是不是有个水有着K。啊,用上这个库有两个方面的作用,一个是一个是针对所有浏览器一版本是不是都可以,还有一个事情就是它的语法是吗?更加简洁。
12:09
能听到不,嗯,那这样我们就写好了一个这样的一个。库好了,下面就要说什么时候用这个库去存数据呢?我们在登录的时候是不是就要存起来,也就说登录成功的时候,来看一下我们登录成功前面是不是只是存在内存里面够吗。不够,还要存在我们的logo里面去,对不对,所以我需要去引入谁。除了引入memory,还不得引入那个storage是不这意思,那这里面是不是有一个save user方法,而此时我还要去干嘛,它点什么save user c user,那也就是说啊,保存到是么local中去。
13:01
本地嘛,对吧,所到本地是不是文件里面去了。能听到能听到好。那你说我的这一个里面。需要从logo中去读吗?我需要从logo里面去读吗?这个不需要吧,因为因为我我存存这个大家知道啊,这个地方有个事情,我就这么存一下,还还没有完全实现功能,什么意思呢?我是不是登录成功的时候去存到logo里面去了,那什么时候用呢。刷新的时候是不是要读,要给它读到了一层里来,对不对,那我在哪去写读的代码呢?是在额的面里面去写吗?不是。最好在哪运行的路口GS,说白了,路口GS是一上来就执行。我一上来就干嘛去,就读取口中保存的什么留着。
14:09
给他加拿宝拿去。读取,这是读取本地中存储的user,因为我有可能是关键浏览器再打开,是不是再打开的话内存是没了呀,但是内存里面必须要有吧。能听懂不,以后我们就只有在这里面从log中读,以后再想去用者是不是都在内存里面去,这样一个是更快对不对,还有一个不用在logo里面再去读了吧,我统一的读了啊,读到哪里去,保存到内存中。能听懂吧,来,那我这个时候得引入两个东西。能听到吧,对,引入两个哪两个,一个是local哦storage,嗯,点斜杠下面的local啊是不是不是这个多少级不是local所是吧,这个吧,还有一个。
15:10
My youth。在了没,李总来,那我们干嘛?是不是从这里面去读user get,什么get user。能听到不这是干嘛,怎么做memory点它是不是有一个属性了。能听到吧,等于什么?当然也可以设计成一个方法来做,对吧,只是用属性方式要方便一点点,能听懂吧。那也就是说我一上来就把user者是不是读到内存来了,那你说我在这个二里面还需要logo里面去取吗?不需要啊,如果内存没有,必然是没有登录。
16:06
是不是?能听到吗?好,这一次我们来测试一把啊,看好了。啊来。哎。这是我们登录是吧,好me。找你,那也就是说我现在刷新会。掉线吗?不会。看到吗?好,那刷新不会这那还有一个事情,我大家看呢,我这个地方有个事情,我关掉浏览器关掉得了。甚至关掉电脑都可以,我在打开去访问的时候,应该是个什么状态,是登录还是未登录的状态登录,那就是说我们是不是可以实现自动登录的功能,走你。打开。
17:00
都看到用户了是不是,但是还有一个小事情。我现在我已经登录了吧,我现在去反录登录页面好吧。再再说好吗?不好,现在是不是已经登录了呀,你应该退出登录以后才能进入这个界面对不对,说白了就一个事情。在我的这个界面,我会去判断用户有没有登录。如果已经登录了,那我就直接跳到那个后台的界面去,是不是。如果没有登录是不是显示界面,那我这个怎么做,那也很简单,其实找到我们的罗的界面是吧,我们一上来在这个render里面,在这个render这里。先干嘛判断用户是否登录对不对啊,如果用户什么已经登录干嘛,自动跳转到哪里去。啊,管理界面这能听到不,那我怎么知道他是否已经登录了,只需要看内存里面有没有user,是不是我需要去读local吗?不需要。
18:11
诶,这个时候就看出来,我们前面是不是统一去读有优势,这里面是不是有,那其实就是非常简单的一件事情,这问题就是看你想不想的出来点什么呢,悠着。能看到吧,而这个时候就有一个有着吧,但它不有值,是不是啊,If,如果user本身没有值。还不够,或者有着点下划线,ID没有值,就是写的比较谨慎吧啊,当然直接写右边的这个也可以。能不能,那这个说明没有登录对不对,那已经登录什么意思,这个只能说明是没有登录,而我要判断什么已经登录,那如果做了警示的,应该先判断有值,并且。
19:05
什么ID,下回ID也有值是不是?那简单的判断就是这么判断。能不能听懂啊,那这个时候我干嘛去。是不是在render里面需要去做一个路由跳转,应该return谁ready是吧,子离应该to等于什么,是不是斜杠啊,斜杠是不是项目的跟路径啊,那这个时候唯一要做的事情就是需要把这个Di什么引入一下是不是?来看一下啊,就这个呗。那也就是说啊,大家看一下从诶。看到了吗?他主动,好了,我再请求一遍,让大家强化一下,大家看好了,我强制请求log。
20:00
能过去吗?不来?对吧,但是如果我把这一个数据删掉,哪个数据的application啊,Local storage,我是不是有一个user k了,这里面存的是user的信息,看到了吗?把它改成什么呢?干掉。我在意说啊。会怎么到进入登录页面。这就对了,能看到吧,能看到嗯,这样我们就实现了一个维持登录以及自动登录的功能,那就都已经做好了啊,其实我们要有这样三个目标,大家都可以看一下。好,这是这个。
我来说两句