循环不是用for of 么 for(let item of list)

循环不是用for of 么 for(let item of list)

http://img1.sycdn.imooc.com//climg/5fe042b4098af3df06390419.jpg

循环不是用for of 么  for(let item of list)  这里面获取rules里面的值用的是for(let key in this.$options.rules)

在这里输入代码,可通过选择【代码语言】突出显示

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

3回答
好帮手慕星星 2020-12-22 10:04:43

同学你好,问题解答如下:

1、当属性名是变量时,一般使用[]方式设置,点(.)方式会将变量作为属性名,而不是变量的值作为属性名。例如:

http://img1.sycdn.imooc.com//climg/5fe15107093338a302530198.jpg

点方式设置会将变量a作为属性名,[]方式设置才会将a变量的值age作为属性名

http://img1.sycdn.imooc.com//climg/5fe1510e09f63b0602530035.jpg

所以课程中用的是this.$options.rules[key] ,而不是this.$options.rules.key  。


for in遍历,key是属性名,通过属性名获取属性值,所以this.$options.rules[key] 是属性值,也就是age和name的属性值。

2、value是当前的值,当监听的name或者age数据改变的时候,$watch监听的回调函数中,第一个参数是当前的值。可以测试看看哦

添加定时器改变age的值

http://img1.sycdn.imooc.com//climg/5fe1534609b1727f06040237.jpg

http://img1.sycdn.imooc.com//climg/5fe1535f09a0b3df06350177.jpg

http://img1.sycdn.imooc.com//climg/5fe1536f09b3360603660133.jpg


前面学习过watch:{}是类似的,后面也有watch方法详细的讲解

http://img1.sycdn.imooc.com//climg/5fe15432091fbb8102840569.jpg

祝学习愉快!

好帮手慕星星 2020-12-21 17:46:02

同学你好,问题解答如下:

1、this.$options.rules是对象,不能数组,所以不能使用for of遍历。使用for in可以遍历对象,例如:

http://img1.sycdn.imooc.com//climg/5fe06ab209c3d75403360214.jpg

key是属性名,然后obj[key]通过属性名获取属性值

http://img1.sycdn.imooc.com//climg/5fe06ac90913fc3001760125.jpg

2、mixin这部分很好理解:for in遍历对象后,通过watch监听key,也就是监听数据,当数据改变的时候,获取当前数据进行自定义校验

http://img1.sycdn.imooc.com//climg/5fe06ec9092b4ef409050273.jpg

自己再理解下,祝学习愉快!

  • 提问者 Vigorous阿炎 #1

    这里有几个点不太懂,为什么是const item=this.$ptions.rules[key] 

    而不是this.$ptions.rules.key

    console.log(this.$ptions.rules[key])这里我打印出来的是age里面的值。  

    第二,

             this.$watch(key,(value)=>{

                      const result= item.validate(value)

    ​    }

    这里的两个value分别指啥?

    2020-12-21 19:28:26
Vigorous阿炎 提问者 2020-12-21 14:54:12

视频中老师说这还是非常简单的mixin,感觉那一坨好难理解

 created(){

            for(let key in this.$options.rules){

                 const item=this.$options.rules[key];

                this.$watch(key,(value)=>{

                  const result= item.fuc(value)

                })

            }

            console.log(this.$options.rules)

        }


问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师