vue3的个人理解

news/2024/11/14 20:23:49/

本文目的是记录使用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 = _configconfig.value.id = _config.idconfig.value.width = _config.width || '50%' // 默认宽度50%,允许自定义宽度callBack = _config.callbackdialogVisible.value = true},})</script><template><el-dialogv-model="dialogVisible"align-centerclass="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 providedconst 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.ppmy.cn/news/1468888.html

相关文章

【机器学习算法】支持向量机SVM算法概述

支持向量机&#xff08;SVM&#xff09;算法是一种高效的监督学习算法&#xff0c;主要用于解决分类、回归分析等问题。 SVM算法原理 支持向量与超平面&#xff1a;SVM的主要目标是寻找一个最优的超平面来分隔不同的类别。在特征空间中&#xff0c;这个超平面不仅能够区分不同…

50etf期权怎么开户?期权懂有几种方式?

今天带你了解50etf期权怎么开户&#xff1f;期权懂有几种方式&#xff1f;50ETF期权开户可以通过证券公司、期权交易平台或期权交易应用进行。投资者需填写开户申请表格&#xff0c;提供身份证明和其他资料&#xff0c;完成开户手续。 50etf期权怎么开户&#xff1f; 满足资金…

单臂路由的配置(思科、华为)

#交换设备 不同vlan属于不同广播域&#xff0c;不能互相通信&#xff0c;他们配置的是不同网段的IP地址&#xff0c;针对不同网段的IP地址进行通信&#xff0c;就需要用到路由技术 实现不同vlan之间的通信技术有两种 单臂路由三层交换 单臂路由 一、思科设备的单臂路由配…

Docker 安装部署(CentOS 8)

以下所有操作都是基于 CentOS 8 系统进行操作的。安装的 Docker 版本为 25.0.5-1.el8。 1、卸载老版本 Docker sudo yum remove docker \docker-client \docker-client-latest \docker-common \docker-latest \docker-latest-logrotate \docker-logrotate \docker-engine注&a…

【html】简单网页模板源码

大家每一次在写网页的时候会不会因为布局而困扰今天就给大家带来一个我自己亲自编写的网页的基本的模板大家可以直接去利用&#xff0c;大家也可以利用自己的想法去做空间的美化和完善。 源码&#xff1a; html: <!DOCTYPE html> <html lang"zh"><…

鸿蒙开发接口安全:【@ohos.security.huks (通用密钥库系统)】

通用密钥库系统 说明 本模块首批接口从API version 8开始支持。后续版本的新增接口&#xff0c;采用上角标单独标记接口的起始版本。 向应用提供密钥库能力&#xff0c;包括密钥管理及密钥的密码学操作等功能。 HUKS所管理的密钥可以由应用导入或者由应用调用HUKS接口生成。 导…

数据可视化后起之秀——pyecharts

题目一&#xff1a;绘制折线图&#xff0c;展示商家A与商家B各类饮品的销售额 题目描述&#xff1a; 编写程序。根据第9.3.1&#xff0c;绘制折线图&#xff0c;展示商家A与商家B各类饮品的销售额。 运行代码&#xff1a; #绘制折线图&#xff0c;展示商家A与商家B各类饮品的…

Character Region Awareness for Text Detection论文学习

​1.首先将模型在Synth80k数据集上训练 Synth80k数据集是合成数据集&#xff0c;里面标注是使用单个字符的标注的&#xff0c;也就是这篇文章作者想要的标注的样子&#xff0c;但是大多数数据集是成堆标注的&#xff0c;也就是每行或者一堆字体被整体标注出来&#xff0c;作者…