00:00
来下一个啊,Read only与shadow only,一个是深度只读,一个是浅的读,咱们还是通过代码的方式呢,把这个演示一下啊,好看Vs code,然后里边新建一个目录,嗯,13-hall。Rev和Sha shadow ref。好把之前的这个文件啊拷贝进去,保存起来。那这个APP里边的代码呢,我们就不要了啊VV。来个三。写个标题啊,代码放大一些。H2。H2回车。Reonly read乌和hall沙兜。被洞里。好,那我还是啊,在上面去展示这个数据,然后呢,我们做一个修改的操作,呃,在这来一个H3吧,嗯,那我就写上一个state。
01:00
State,好之后在这边setup。返回一个对象,对象当中呢,就是这个state,我们来看一看啊。先来一个cost state等于括号里边来一个对象,那我先给它一个名字吧,名字叫,然后再来一个age,是20,再来一个cars。Car。对象内呢,给他个名字叫奔驰啊,再给他来一个卡的。好,那我就给它来一个yellow吧,其实我蛮喜欢这个颜色的啊,好。保存一下。卡住了是吗?稍等一下啊。好这边啊,接下来我去点击按钮的时候,要对这个数据进行修改,所以说我再来一个按钮吧。更新数据。Click等于update。好,复制一下啊,回到下边来。
02:00
那这边应该有个cost update等于。好,这里边我先写上一句话,跟我点log。测试。啊,格式化啊。保存。OK,打开界面看效果啊,刷新。呃,这里边儿这个数据呢,可以正常展示,我们现在要说的是read only与shadow read only啊来看一下。他们两个也是组合API当中的啊数据啊。好,来看啊。呃,我来一个count state2等于re read only括号里边把state放进去,这里边我用的是的方式,去呃显呃去去这个操作啊,咱们来看一下啊。好在这里边,那我怎么写呢?我就直接这么写吧。呃,把STATE2暴露出去,然后通过STATE2里边的这个name加等于好等等。啊,现在我们来看报错了。那就说明咱们当前这个什么呢?内幕属性,它是只读的一个属性,只读的属性是不能够更改的,虽然说呢,我把它保存这边也可以编译成功啊。
03:04
但是我们来看一下刷新。这边是不是就有问题了吧,啊,很明显告诉我们这种是只读的不行啊。那没有办法,嗯,那再换STATE2里边的这个car,然后点name。加等于。我们再来看一下。诶,编译成功了是吧,然后这边刷新怎么的还是报错的啊,说明什么呢?说明当我们有一个对象,如果通过read only的方式进行处理,那么此时它是一个只读数据,而且还是一个什么深度只读,比如说本身当前这个对象的属性是只读的,然后它内层里边这个属性的对象里边属性还是只读的,所以说叫做深度只读啊。好,OK,我把它换一个,大家再来看看另外一个constant state2等于这个叫al。Shadow read only,我里边还是传入这个state。现在呢,我们再来看啊,我把它干掉,不要了。
04:03
state2.name加等于等等等,然后我们再来看吧,还是报错状态。啊,报错状态。打开这个界面呢,然后我们去刷新,它也是报错的,哎,那就说明这个数据能不能改呢,不能改啊,不能改,那注意啊,这个位置此时。的方式,它也是什么呢?只读的啊,不能更改。那也不能删除了。我再试一试,我不信啊,我要坚持我的想法,里边我找到卡点name加等于等等等,然后再保存。诶,貌似好像成功了是吧,格式化一下啊保存。好,然后我们这边呢,再去刷新一下。现在我一点一下。哎,没有效果是吧,啊state啊,因为我上边这个位置。应该用二了啊。刷新一下,我们现在来看啊,我一点变化没有变化了,那就说明这个shadow read only的方式是深度只读吗?不是它是显只读啊。
05:04
它也是只读的这个数据,但是它是什么呢?钱只读。言外之意就是说,诶,Shadow read o当中我放了一个对象,对象当中里边的直接的属性我是可以进,可是不能够进行修改的,它是只读的,但是如果有一个属性里边还是有对象,对象当中还是有属性里边的这个属性。它是可以进行修改的啊,注意那这个呢,就是我们所说的一个是read only,还有一个是shadow read啊read only深度只读数据获取一个对象或if返回来的原始代理的只读数据好。注意啊,这是深层次的啊,深层次的。那么啥都only是什么呢?钱只读的创建一个代理,使其自身的属性是只读的,但不执行嵌套对象深度只读转换,换句话来讲就是说深层次的数据它还是可以进行修改的啊,当然了,我这个位置使用的是relative,大家课后呢,可以使用一下ref的方式啊,来试试看好。
我来说两句