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

【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. 购物车案例


http://www.kler.cn/a/593527.html

相关文章:

  • 代码随想录第55期训练营第七天|LeetCode454.四数相加II、383.赎金信、15.三数之和、18.四数之和
  • 火山引擎(豆包大模型)(抖音平台)之火山方舟的Prompt的使用测试
  • RabbitMQ消息可靠性问题
  • 前沿技术一览科技改变生活新趋势
  • 用gemini画流程图
  • Python实战(2)-数据库支持
  • 【AWS入门】Amazon EC2简介
  • Docker进阶篇1:什么是Docker数据卷?为什么需要Docker数据卷?Docker数据卷3种类型介绍
  • Excel Script Lab学习笔记
  • Vlan初级实验
  • 一次Milvus迁移的记录
  • 【32】单片机编程核心技巧:Switch驱动按键控制跑马灯方向
  • RabbitMQ 基本原理详解
  • Java 并发集合:ConcurrentHashMap 深入解析
  • html5基于Canvas的经典打砖块游戏开发实践
  • 齿轮热处理学习笔记分享
  • 本地部署deepseek-r1建立向量知识库和知识库检索实践【代码】
  • 多模态大模型:将音频向量化
  • 再学:合约继承 、抽象合约 solidity接口、库、事件 合约重入攻击
  • 快速迭代:利用 nodemon 和其他工具实现 Express.js 热更新