一起从零开始学VUE(9)ref与数组中的方法

阶段小结

在这里插入图片描述

使用ref引用DOM元素

在vue项目中,不建议使用和安装jquery,如果想操作dom元素,可以使用ref引用。在每个vue的组件实例上,都包含一个$refs对象,里面存储着对应的DOM元素或组件的引用。默认情况下,组件的$refs指向一个空对象,如果有添加ref属性的话,则$refs中会出现对应的内容

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dQsIxhqD-1648282632396)(https://gitee.com/lyy_97591/my-image/raw/master/img/202203251506859.png)]

  1. 使用refs获取DOM元素

在这里插入图片描述

  1. 操作DOM :获取了DOM元素后,我们就可以该元素进行类似于JQ的操作,下面以修改组件的字体颜色为例

请添加图片描述

使用ref引用组件实例

不仅可以使用ref引用dom元素,还可以对组件实例进行引用
请添加图片描述

  1. 引用子组件,left.vue,并在components节点下进行注册
  2. 在父组件中通过标签使用子组件,并为子组件添加ref属性
  3. 在子组件中data节点中定义count,以及resetCount函数实现count的重置
    resetCount(){
      this.count = 0
      this.$emit("numChange",this.count)
    }
  1. 在父节点中通过this.$refs.子组件的ref属性.resetCount()进行调用
    resetLeftCount(){
      this.$refs.myLeft.resetCount()
    }

初步实现按钮和文本的按需展示

实现效果:

请添加图片描述
关键代码:

    showInput(){
      this.isVisible = true
    },
    showButton(){
      this.isVisible = false
    }

补充:

让文本框自动获得焦点

当文本框展示出来之后,如果希望立即获得焦点,则可以为其添加ref引用,并调用原生DOM对象的.focus()方法即可,但是如果我们直接在函数中添加该方法又会出现报错

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-wo7YQFNV-1648282632398)(https://gitee.com/lyy_97591/my-image/raw/master/img/202203261509432.png)]

this.$nextTick(cb)方法

表示把回调函数延迟执行,等到dom元素渲染完成后再执行回调函数,这样能够保证操作的是最新的dom元素。现在,我们就可以解决上面说的那个问题了。

    showInput(){
      this.isVisible = true
      this.$nextTick(()=>{
        this.$refs.inputRef.focus()
      })
    },

请添加图片描述

数组中的方法

forEach循环

一旦开始就无法在中间被停止
在这里插入图片描述
在这里插入图片描述

some循环

在找到对应的项之后,可以通过return true固定的语法来终止some循环

在这里插入图片描述

在这里插入图片描述

every循环

判断数组中的每一项是否都符合要求,例如判断一个数组是否被全选,我们可以使用every循环,最终返回的是一个true/false值

在这里插入图片描述
在这里插入图片描述

reduce的基本用法

将每次循环的结果进行累加
arr.filter(item => item.state).reduce((累加的结果,当前循环项) => { } , 初始值 )
在这里插入图片描述

购物车实例

链接:https://pan.baidu.com/s/11yaePOeVaoESmsgGaitJhw
提取码:1234

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值