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

Vue.js核心技术解析与uni-app跨平台实战开发学习笔记 第12章 Vue3.X新特性解析 12.9 Refs 模板

Vue.js核心技术解析与uni-app跨平台实战开发学习笔记

文章目录

      • Vue.js核心技术解析与uni-app跨平台实战开发学习笔记
      • 第12章 Vue3.X新特性解析
        • 12.9 Refs 模板

第12章 Vue3.X新特性解析

12.9 Refs 模板

Refs模板用于获取页面DOM元素或者组件,与Vue2.x的$refs类似。

Refs模板的使用方法:

  1. 在setup()中创建ref对象,其值为null
  2. 为元素添加ref属性,其值为步骤1中创建的ref对象名
  3. 完成页面渲染之后,获取DOM元素或者组件。

举个栗子:

创建新组件ComRefDom.vue

在这里插入图片描述

<template>
    <div>
        <h1 ref="msg">Hello Vue3</h1>
    </div>
</template>

<script>
import {ref , onMounted} from 'vue'

export default {

    setup () {
        //使用ref函数定义响应式数据,传入null
        var msg = ref(null)

        onMounted(() => {
            console.log(msg.value)
            msg.value.style.color = 'red'
        })

        return {
            msg
        }
    }

}

</script>

使用Refs模板获取组件,创建ComRef组件

<template>
    <div>
        <h1>{{msg}}</h1>
    </div>
</template>

<script>
import { ref } from 'vue'

export default {
    setup() {
        var msg = ref("Hello Refs")

        var btn = () => {
            console.log(msg.value)
        }

        return {
            msg , 
            btn
        }
    }
}
</script>

在App父组件中引用ComRef子组件。

<template>
  <div id="nav">
    <ComRef ref="Commsg"></ComRef>
  </div>
  <!-- <router-view/> -->
</template>

<script>
  //引用子组件
import ComRef from './components/ComRef'

import { onMounted,ref } from 'vue';

export default {
  //注册子组件
  components : {
    ComRef
  },

  setup() {
    
    //使用ref函数定义响应式数据,传入null
    var Commsg = ref(null)
    //完成页面渲染后,使用组件中的属性或者方法
    onMounted(() => {
      //调用子组件中的数据
      console.log(Commsg.value.msg)
      //调用子组件中的方法
      Commsg.value.btn()
    })


    return {
      Commsg
    }
  }


}

</script>

<style>

</style>

运行效果:

在这里插入图片描述

通过ref,可以在父组件中直接调用子组件中的数据和方法。

相关文章:

  • 有序矩阵中第K小元素[优先队列PriorityQueue]
  • 闲谈JVM(一):浅析JVM Heap参数配置
  • 商城小程序系统,商城源码
  • 元宇宙电商-NFG系统带你布局数字藏品领域
  • statsD学习笔记
  • 坠落的蚂蚁(暑假每日一题 40)
  • TV蓝牙无法被搜索问题解决记录:REQUEST_DISCOVERABLE ActivityNotFoundException
  • 【JavaScript 逆向】猿人学 web 第六题:回溯
  • 最牛逼的 Java 日志框架,性能无敌,横扫所有对手
  • CREO:CREO软件之装配设计界面的简介、装配图设计流程、案例应用(图文教程)之详细攻略
  • 【赛码网刷题】动态规划之上台阶
  • Java 的开发效率究竟比 C++ 高在哪里?
  • python random应用实例 从可选池随机选取指定个数的元素并随机排序
  • 【Java成王之路】EE初阶第二十二篇 博客系统(页面设计)
  • 编译mtd-utils(使用uclibc编译)
  • 【Redis学习笔记】2018-06-28 redis命令源码学习1
  • co模块的前端实现
  • Debian下无root权限使用Python访问Oracle
  • java取消线程实例
  • Mac 鼠须管 Rime 输入法 安装五笔输入法 教程
  • Python进阶细节
  • tab.js分享及浏览器兼容性问题汇总
  • 测试开发系类之接口自动化测试
  • 番外篇1:在Windows环境下安装JDK
  • 关于List、List?、ListObject的区别
  • 理解在java “”i=i++;”所发生的事情
  • 前嗅ForeSpider中数据浏览界面介绍
  • 浅谈Golang中select的用法
  • 什么软件可以提取视频中的音频制作成手机铃声
  • 项目管理碎碎念系列之一:干系人管理
  • FaaS 的简单实践
  • ​​​​​​​ubuntu16.04 fastreid训练过程
  • ​2020 年大前端技术趋势解读
  • "无招胜有招"nbsp;史上最全的互…
  • # Swust 12th acm 邀请赛# [ K ] 三角形判定 [题解]
  • #pragma data_seg 共享数据区(转)
  • #pragma once与条件编译
  • (2)MFC+openGL单文档框架glFrame
  • (4)通过调用hadoop的java api实现本地文件上传到hadoop文件系统上
  • (笔试题)分解质因式
  • (附源码)ssm教师工作量核算统计系统 毕业设计 162307
  • (附源码)计算机毕业设计SSM智能化管理的仓库管理
  • (力扣记录)235. 二叉搜索树的最近公共祖先
  • (四)docker:为mysql和java jar运行环境创建同一网络,容器互联
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)大型网站的系统架构
  • (轉貼) 2008 Altera 亞洲創新大賽 台灣學生成果傲視全球 [照片花絮] (SOC) (News)
  • .\OBJ\test1.axf: Error: L6230W: Ignoring --entry command. Cannot find argumen 'Reset_Handler'
  • .bat批处理(七):PC端从手机内复制文件到本地
  • .Family_物联网
  • .gitignore文件_Git:.gitignore
  • .NET Standard、.NET Framework 、.NET Core三者的关系与区别?
  • .Net6使用WebSocket与前端进行通信
  • .NET中的Exception处理(C#)
  • .考试倒计时43天!来提分啦!