当前位置: 首页 > news >正文

【VUE】day05-ref引用

这里写目录标题

  • 1. ref引用
    • 1.1 使用ref引用组件
  • 2. this.$nextTick(cb)方法
  • 3. 购物车案例
    • 3.1 数组中的方法 - some循环
    • 3.2 数组中的方法 - every循环
    • 3.3 数组中的方法 - reduce
  • 4. 购物车案例

1. ref引用

ref用来辅助开发者在不依赖于jQuery的情况下,获取DOM元素或组件的引用。

每个vue的组件实例上,都包含一个$ref对象,里面存储着对应的DOM元素或组件的引用。默认情况下,组件的$ref指向一个空对象

在这里插入图片描述

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

在这里插入图片描述

1.1 使用ref引用组件

如果想要使用ref引用页面上的组件实例,则可以按照下面的方式进行操作:
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

2. this.$nextTick(cb)方法

组件的$nextTick(cb)方法,会把cb回调推迟到下一个DOM更新周期之后执行。通俗的理解是:等组件的DOM更新完成之后,再执行cb回调函数。从而能保证cb回调函数可以操作到最新的DOM元素。

3. 购物车案例

3.1 数组中的方法 - some循环

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>

  <script>
    const arr = ['小红', '你大红', '苏大强', '宝']

    // forEach 循环一旦开始,无法在中间被停止
    /* arr.forEach((item, index) => {
      console.log('object')
      if (item === '苏大强') {
        console.log(index)
      }
    }) */

    /* arr.some((item, index) => {
      console.log('ok')
      if (item === '苏大强') {
        console.log(index)
        // 在找到对应的项之后,可以通过 return true 固定的语法,来终止 some 循环
        return true
      }
    }) */
  </script>
</body>

</html>

3.2 数组中的方法 - every循环

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    const arr = [
      { id: 1, name: '西瓜', state: true },
      { id: 2, name: '榴莲', state: false },
      { id: 3, name: '草莓', state: true },
    ]

    // 需求:判断数组中,水果是否被全选了!
    const result = arr.every(item => item.state)
    console.log(result)
  </script>
</body>

</html>

3.3 数组中的方法 - reduce

<!DOCTYPE html>
<html lang="en">

<head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>Document</title>
</head>

<body>
  <script>
    const arr = [
      { id: 1, name: '西瓜', state: true, price: 10, count: 1 },
      { id: 2, name: '榴莲', state: false, price: 80, count: 2 },
      { id: 3, name: '草莓', state: true, price: 20, count: 3 },
    ]

    // 需求:把购物车数组中,已勾选的水果,总价累加起来!
    /* let amt = 0 // 总价
        arr.filter(item => item.state).forEach(item => {
          amt += item.price * item.count
        })
    
        console.log(amt) */

    // arr.filter(item => item.state).reduce((累加的结果, 当前循环项) => { }, 初始值)
    const result = arr.filter(item => item.state).reduce((amt, item) => amt += item.price * item.count, 0)

    console.log(result)
  </script>
</body>

</html>

4. 购物车案例

相关文章:

  • 3.18-1
  • 基于Spring Boot的冷链物流系统的设计与实现的设计与实现(LW+源码+讲解)
  • docker需要sudo才能使用
  • Qt窗口控件之颜色对话框QColorDialog
  • jvm中每个类的Class对象是唯一的吗
  • 计算机网络分层结构
  • 【第14节】windows sdk编程:进程与线程介绍
  • Vue下载与安装步骤
  • Windows Docker 报错: has no HTTPS proxy,换源
  • 网络空间安全(37)获取webshell方法总结
  • 面试八股 —— Redis篇
  • Dagger2从入门到放弃
  • c++ - 笔记
  • C/C++结构体简单介绍
  • 深度学习:从零开始的DeepSeek-R1-Distill有监督微调训练实战(SFT)
  • Python 中下划线 “_” 的多面性:从变量到约定
  • java agent 学习
  • 阿里云平台服务器操作以及发布静态项目
  • 模拟实现string
  • 数据表100多字段如何写mapper文件的xml
  • 做鸡婆的网站有没有/seo黑帽技术工具
  • html5高端装修公司网站源码/上海网络营销推广外包
  • 网站建设 公司/地推团队去哪里找
  • 南京浦口做网站点/平台接广告在哪里接的
  • 公益网站建设那家好/长沙网
  • 小企业网站建设/关键词小说