zoukankan      html  css  js  c++  java
  • vue3 template refs dom的引用、组件的引用、获取子组件的值

    介绍

    通过 ref() 还可以引用页面上的元素或组件。

    DOM 的引用

    <template>
      <div>
        <h3 ref="h3Ref">TemplateRefOne</h3>
      </div>
    </template>
    
    <script>
    import { ref, onMounted } from '@vue/composition-api'
    
    export default {
      setup() {
        // 创建一个 DOM 引用
        const h3Ref = ref(null)
    
        // 在 DOM 首次加载完毕之后,才能获取到元素的引用
        onMounted(() => {
          // 为 dom 元素设置字体颜色
          // h3Ref.value 是原生DOM对象
          h3Ref.value.style.color = 'red'
        })
    
        // 把创建的引用 return 出去
        return {
          h3Ref
        }
      }
    }
    </script>
    

    组件的引用

    父组件获取子组件的值
    父组件 templateRefOne.vue

    <template>
      <div>
        <h3>TemplateRefOne</h3>
    
        <!-- 4. 点击按钮展示子组件的 count 值 -->
        <button @click="showNumber">获取TemplateRefTwo中的count值</button>
    
        <hr />
        <!-- 3. 为组件添加 ref 引用 -->
        <TemplateRefTwo ref="comRef" />
      </div>
    </template>
    
    <script>
    import { ref } from '@vue/composition-api'
    import TemplateRefTwo from './TemplateRefTwo'
    
    export default {
      setup() {
        // 1. 创建一个组件的 ref 引用
        const comRef = ref(null)
    
        // 5. 展示子组件中 count 的值
        const showNumber = () => {
          console.log(comRef.value.count)
        }
    
        // 2. 把创建的引用 return 出去
        return {
          comRef,
          showNumber
        }
      },
      components: {
        TemplateRefTwo
      }
    }
    </script>
    

    子组件 templateRefTwo.vue

    <template>
      <div>
        <h5>TemplateRefTwo --- {{count}}</h5>
        <!-- 3. 点击按钮,让 count 值自增 +1 -->
        <button @click="count+=1">+1</button>
      </div>
    </template>
    
    <script>
    import { ref } from '@vue/composition-api'
    
    export default {
      setup() {
        // 1. 定义响应式的数据
        const count = ref(0)
    
        // 2. 把响应式数据 return 给 Template 使用
        return {
          count
        }
      }
    }
    </script>
    
  • 相关阅读:
    JS元素分组统计
    并发工具类
    【Spring-Cloud】mall eureka微服务模块建立
    【Spring-Cloud】mall父工程建立
    【MySQL】创建函数和存储过程,批量插入大数据
    【JAVA】http 状态
    【JAVA】如何写好代码
    【Docker】dockerfile,支持jdk8、 sshd、 python3.6
    【Hadoop】MapperReduce WordCount 代码示例
    【Hadoop】YARN 完全分布式配置
  • 原文地址:https://www.cnblogs.com/guangzan/p/11838402.html
Copyright © 2011-2022 走看看