vue3的个人理解

news2024/12/27 13:06:40

本文目的是记录使用vue3的时候的一些属性的个人理解。

一、defineExpose
  1. 官方说明
    在这里插入图片描述
  2. 个人理解
    <script setup>组件中,defineExpose可以暴露出组件的属性。
  3. 项目实战
    // dialog组件
    <script setup>
    	import { ref } from 'vue'
    	import { Close } from '@element-plus/icons-vue'
    	// dialog 是否可见
    	const dialogVisible = ref(false)
    	// 配置
    	const config = ref({})
    	// 回调
    	let callBack = null
    	
    	// 组件暴露出的方法和属性
    	defineExpose({
    	  openDialog(_config) {
    	    config.value = _config
    	    config.value.id = _config.id
    	    config.value.width = _config.width || '50%' // 默认宽度50%,允许自定义宽度
    	    callBack = _config.callback
    	    dialogVisible.value = true
    	  },
    	})
    	
    	</script>
    	<template>
    	  <el-dialog
    	    v-model="dialogVisible"
    	    align-center
    	    class="i-dialog"
    	    :show-close="false"
    	    :append-to-body="true"
    	    :width="config.width"
    	  >
    	  </el-dialog>
    	</template>
    
    	// 父页面
    	const dialog = ref()
    	
    	function handleStopApi(id) {
    	  dialog.value.openDialog({
    	    width: '480',
    	    title: '您确认要停用该企业吗?',
    	    message: '停用后该企业无法再次登录系统!',
    	    confirmText: '停用',
    	    callback: () => {
    	      disableOrg(id)
    	    },
    	    id,
    	  })
    	}
    	
    	<templete>
    	    <Dialog ref="dialog" />
    	</templete>
    
二、自定义指令
  1. 官方说明
    在这里插入图片描述
  2. 个人理解
    自定义指令,写好自定义指令后,注册指令,页面中通过v-***调用
  3. 项目实战
// src\directives\throttle.js
import throttle from 'lodash/throttle';

export default function throttleDirective() {
  return {
    fn: null,
    mounted(el, binding) {
      const handler = Array.isArray(value) ? value[0] : value;
      const delay = Array.isArray(value) ? value[1] : 1000; // Default delay to 1000 ms if not provided
      const handleThrottle = throttle(handler, delay);
      el.addEventListener(arg, handleThrottle);
    },
  };
}

// main.js
import throttleDirective from '@/directives/throttle.js'

app.directive('throttle', throttleDirective())

// 使用自定义组件
<template>
  <button v-throttle:click="[handleClick, 2000]">Click Me</button>
  <button v-throttle:click="handleClick">Click Me</button>
</template>

<script>
export default {
  methods: {
    handleClick() {
      console.log('Button clicked!');
    },
  },
};
</script>

defineModel
  1. 官方说明
    在这里插入图片描述
  2. 个人理解
    父子组件双向数据绑定使用defineModel, 比以前的写法更加便捷
	<!-- Child.vue -->
	<script setup>
	const props = defineProps(['modelValue'])
	const emit = defineEmits(['update:modelValue'])
	</script>
	
	<template>
	  <input
	    :value="props.modelValue"
	    @input="emit('update:modelValue', $event.target.value)"
	  />
	</template>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1811998.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【OCPP】ocpp1.6协议第4.5章节Firmware Status Notification的介绍及翻译

目录 4.5、固件状态通知Firmware Status Notification-概述 Firmware Status Notification 消息 Firmware Status Notification 请求消息 Firmware Status Notification 响应消息 使用场景 举例 FirmwareStatusNotification 请求示例 处理 FirmwareStatusNotification …

RAG与知识库搭建

Tip: 如果你在进行深度学习、自动驾驶、模型推理、微调或AI绘画出图等任务&#xff0c;并且需要GPU资源&#xff0c;可以考虑使用UCloud云计算旗下的Compshare的GPU算力云平台。他们提供高性价比的4090 GPU&#xff0c;按时收费每卡2.6元&#xff0c;月卡只需要1.7元每小时&…

ClickHouse快速安装教程(MacOS)

文章目录 ClickHouse快速安装教程&#xff08;MacOS&#xff09;1.ClickHouse2.快速安装3.快速启动3.1.启动服务器3.2.启动客户端 4.使用案例1.配置文件2.启动CK服务3.创建数据库4.创建表5.插入数据6.查询数据 ClickHouse快速安装教程&#xff08;MacOS&#xff09; 1.ClickHo…

如何利用 Google 搜索结果页来引导?

在数据驱动的决策世界中&#xff0c;获取准确而全面的信息至关重要。Google 搜索结果抓取是一种强大的技术&#xff0c;可以让企业、调查人员和研究人员从搜索引擎结果中提取可靠的数据。本综合指南将深入研究 Google 搜索结果的最佳实践、工具和道德考量&#xff0c;以确定能够…

PB-03F 二次开发——GPIO中断

文章目录 前言一、函数介绍1. hal_gpioin_register2. hal_gpio_init3. hal_gpio_pin_init4. hal_gpio_fast_write5. hal_gpio_read6. hal_gpioin_enable7. hal_gpioin_disable二、工具1. 硬件2. 软件 三、GPIO demo示例1. main.c2. 项目框架3. 注意 四、 烧录总结 前言 本文简…

数据结构下的线性回归模型

文章目录 1. 线性回归模型的基本概念与原理2. 数据结构在构建线性回归模型中的应用2.1 数组和矩阵2.2 列表2.3 字典2.4 数据框架 3. 线性回归模型的实现方法4. 示例代码演示总结 线性回归是统计学中最基础也是应用最广泛的预测模型之一&#xff0c;主要用于分析两个或两个以上变…

八轴光电测径仪在传统四大行业的具体应用

关键字:八轴测径仪, 智能测径仪,工业测径仪, 非接触测径仪,蓝鹏测控 八轴光电测径仪在多个行业中都有广泛的应用&#xff0c;尤其是在需要高精度尺寸控制的领域。以下是一些具体的应用实例&#xff1a; 这些应用展示了八轴光电测径仪在不同行业中的多样性和重要性。通过提供高精…

落地台灯什么牌子的比较好?五款适合学生使用的大路灯分享

以往只知道养孩子难&#xff0c;但到底有多难&#xff0c;心里确实没有个切实的预期&#xff0c;但随着我家孩子越长越大&#xff0c;我才知道原来想要把孩子的身心健康照顾好到底是有多难&#xff01;吃、穿、住、行无一不要精心挑选&#xff0c;就是为了能给他营造一个更好的…

StarRocks vs. Trino: 高并发性能背后的技术优势是什么?

Trino&#xff08;之前称 PrestoSQL&#xff09;项目最初由 Meta 开发&#xff0c;旨在让数据分析师能够在广泛的 Apache Hadoop 数据仓库上执行交互式查询。其高效处理大型数据集和复杂查询的能力&#xff0c;以及多数据源连接的灵活性&#xff0c;使其迅速成为大规模组织的首…

【初阶数据结构】深入解析顺序表:探索底层逻辑

&#x1f525;引言 本篇将深入解析顺序表:探索底层逻辑&#xff0c;理解底层是如何实现并了解该接口实现的优缺点&#xff0c;以便于我们在编写程序灵活地使用该数据结构。 &#x1f308;个人主页&#xff1a;是店小二呀 &#x1f308;C语言笔记专栏&#xff1a;C语言笔记 &…

【必会面试题】布隆过滤器

目录 基本组成部分&#xff1a;工作原理&#xff1a;特点&#xff1a;一个简单的示例应用场景&#xff1a; 布隆过滤器&#xff08;Bloom Filter&#xff09;是一种空间效率极高且查询速度很快的概率型数据结构&#xff0c;用于测试一个元素是否属于一个集合。布隆过滤器的基本…

【CGAL】Region_Growing检测圆柱,保存结果并输出圆柱体参数

目录 说明代码展示结果展示问题说明 说明 这篇博客以代码为主&#xff0c;使用CGAL中的region growing方法检测圆柱体。将不同的圆柱按不同颜色保存&#xff0c;并输出圆柱体的中心坐标、轴方向以及半径。 region growing的具体思想网上的文章已经有很多&#xff0c;可以参考这…

万界星空科技定制化MES系统,实现数字化生产

一、MES生产管理系统强调三个方面&#xff1a; 1、MES是对整个车间制造过程的优化&#xff0c;而不是单一的解决某个生产瓶颈。 2、MES必须提供实时收集生产过程中数据的功能&#xff0c;并作出相应的分析和处理。 3、MES需要与计划层和控制层进行信息交互&#xff0c;通过企业…

算法day25

第一题 394. 字符串解码 解法&#xff1a;模拟栈的完成上述的操作&#xff1b; 分析&#xff1a; 下面以如图的字符串来分析&#xff1b; 首先定义一个数字栈用来存放数字&#xff0c;同时定义一个容器stringbuffer栈&#xff0c;里面用来存放字符串&#xff1b; 1、遇到数字&…

若依RuoYi-Vue分离版—配置多数据源

若依RuoYi-Vue分离版—配置多数据源 一、修改application-druid.yml二、修改pom文件&#xff0c;引入依赖第一种&#xff1a;下载jar包到本地&#xff0c;然后引入&#xff08;我这边用的是这种&#xff09;本地引入的&#xff0c;打包时需要加上配置 第二种&#xff1a;从远程…

JAVA开发 使用Apache PDFBox库生成PDF文件,绘制表格

1. 表格位置定点 2.执行效果展示&#xff08;截取PDF文件图片&#xff09; 3.执行代码 当我们使用Apache PDFBox库在PDF文件中创建带有表格的内容&#xff0c;需要遵循几个步骤。PDFBox本身并没有直接的API来创建表格&#xff0c;但我们可以通过定位文本、绘制线条和单元格矩形…

如何在Visual Studio Code中禁用Less文件保存时自动编译为CSS的功能

第一步&#xff1a;点击扩展&#xff0c;搜索Easy Less&#xff0c;并找到对应的扩展设置 第二步&#xff1a;点击在setting.json中编辑 第三步&#xff1a;将此段代码复制粘贴 "compress": false, // 是否压缩"sourceMap": false, // 是否生成map文件&am…

揭秘ASA归因统计的奥秘,Xinstall带您轻松上手!

在移动互联网时代&#xff0c;App推广已成为企业获取用户、提升品牌知名度的重要手段。然而&#xff0c;如何准确衡量推广效果&#xff0c;如何精准定位目标用户&#xff0c;一直是困扰着众多App运营者的难题。今天&#xff0c;我们就来谈谈ASA&#xff08;Apple Search Ads&am…

怎么监控电脑屏幕上的画面?监控电脑屏幕的优秀软件有哪些

怎么监控电脑屏幕上的画面呢&#xff1f;当然是用监控软件啦&#xff0c;它的功能超乎你的想象&#xff0c;下面我将详细介绍如何使用监控软件来监控屏幕&#xff0c;内容将包含监控软件的选择、安装、配置以及具体监控功能的实现等方面。 一、选择监控软件 在选择监控软件时&…

SonarQube安全扫描常见问题

目录 一、SonarQube质量报告 二、SonarQube扫描常见问题和修复方法 三、SonarQube质量配置 最近小编在使用SonarQube工具进行代码扫描&#xff0c;检查代码异味&#xff0c;系统漏洞等&#xff0c;实际过程中也遇到了不少问题&#xff0c;这篇文章主要列举我遇到的常见问题和…