uniapp使用defineExpose暴露和onMounted访问

2024-09-01 10:20

本文主要是介绍uniapp使用defineExpose暴露和onMounted访问,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

defineExpose作用

  1. 暴露方法和数据

    • 允许从模板或其他组件访问当前组件内部的方法和数据。
    • 明确指定哪些方法和数据可以被外部访问,从而避免不必要的暴露。
  2. 增强安全性

    • 通过显式声明哪些方法和数据可以被外部访问,防止意外修改内部状态。
    • 提高组件的安全性,避免因误操作导致的问题。
  3. 提升可维护性

    • 清晰地定义组件的边界,使其他开发者更容易理解和使用组件。
    • 增强组件的可维护性,便于后续的开发和维护工作。

onMounted 作用

  1. DOM 操作

    • 当你需要根据 DOM 的状态来执行某些操作时,可以在 onMounted 钩子中进行。例如,设置某个元素的高度或宽度,或者初始化第三方插件。
  2. 异步请求

    • 组件挂载后,通常会触发一些异步请求来获取数据填充到页面中。这些请求通常在 onMounted 钩子中发起。
  3. 事件绑定

    • 如果需要给 DOM 元素绑定事件监听器,那么 onMounted 是一个合适的地方

总结

  • defineExpose 用于定义组件的公开 API,控制哪些方法和数据可以被外部访问。
  • onMounted 用于执行组件挂载完成后的一些初始化操作,如 DOM 操作、异步请求等。

两者可以结合使用,以实现更安全、更高效的组件设计。在实际开发中,可以根据组件的具体需求来决定是否以及如何使用这两个特性。

示例


子组件定义:

defineExpose 将 nameage 和 show 方法暴露给父组件

<template><view>子组件</view>
</template><script setup>import {ref} from 'vue';// 声明一个响应式变量name,初始值为'张三'var name = ref('张三')// 声明一个响应式变量age,初始值为18var age = ref(18)/*** 显示名称和年龄的方法* @returns {string} 返回名称和年龄的字符串*/var show = () => {return '名称' + name.value + '  年龄' + age.value}// 导出name, age和show方法,以便父组件可以访问和调用defineExpose({name: name,age: age,show})
</script>

父组件定义

  • 模板部分 (<template>):

    • 包含一个 bdqn-header 组件,并通过 ref 属性将其引用赋值给 student
    • 三个 <view> 元素分别显示 student 的 nameage 和调用 show 方法的结果。
  • 脚本部分 (<script setup>):

    • 引入 onMounted 和 ref 函数。
    • 声明一个响应式变量 student,并初始化为 null
    • 在 onMounted 钩子中打印 student 的值
<template><!-- 使用ref属性绑定student对象 --><bdqn-header ref="student"></bdqn-header><!-- 条件渲染学生的姓名 --><view>{{student?.name}}</view><!-- 条件渲染学生的年龄 --><view>{{student?.age}}</view><!-- 调用student对象的show方法 --><view>{{ student?.show()}}</view>
</template><script setup>// 导入Vue的core功能,包括ref和onMountedimport {onMounted,ref} from 'vue';// 定义一个可变的student引用,初始值为nullvar student = ref(null)// 在组件挂载完成后执行回调函数onMounted(() => {// 打印此时的student值,用于调试console.log(student.value);})
</script>

这篇关于uniapp使用defineExpose暴露和onMounted访问的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1126663

相关文章

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面

Android中Dialog的使用详解

《Android中Dialog的使用详解》Dialog(对话框)是Android中常用的UI组件,用于临时显示重要信息或获取用户输入,本文给大家介绍Android中Dialog的使用,感兴趣的朋友一起... 目录android中Dialog的使用详解1. 基本Dialog类型1.1 AlertDialog(

Python使用自带的base64库进行base64编码和解码

《Python使用自带的base64库进行base64编码和解码》在Python中,处理数据的编码和解码是数据传输和存储中非常普遍的需求,其中,Base64是一种常用的编码方案,本文我将详细介绍如何使... 目录引言使用python的base64库进行编码和解码编码函数解码函数Base64编码的应用场景注意