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

18 vue3之自动引入ref插件深入使用v-model

自动引入插件后无需再引入ref等

使用自动引入插入无需在import { ref, reactive } from "vue"做这样的操作

npm i unplugin-auto-import - D

 vite配置

import AutoImport from 'unplugin-auto-import/vite' //使用vite版本
export default defineConfig({plugins: [vue(),VueJsx(),AutoImport({imports:['vue'],dts:"src/auto-import.d.ts"})]
}

配置完成之后使用ref reactive watch 等 无须import 导入 可以直接使用 

v-model

v-model使用场景

TIps 在Vue3 v-model 是破坏性更新的

v-model在组件里面也是很重要的

v-model 其实是一个语法糖 通过props 和 emit组合而成的

默认值的改变

prop:value -> modelValue
事件:input -> update:modelValue
vue3中v-bind 的 .sync 修饰符和组件的 model 选项已移除
新增 支持多个v-model
新增 支持自定义 修饰符 Modifiers

单个v-model在自定义组件中使用场景

父组件


<template><div class=""></div><button @click="isShow = !isShow">开关</button><div>isShow:{{ isShow }}</div><hr /><!-- 内置修饰符 v-model.trim、自定义修饰符v-model:text.isSq  --><comv-model="isShow"></com>
</template><script setup lang="ts">
import { ref, reactive } from "vue";
import com from "./components/twenty.vue";
let isShow = ref<boolean>(true);
let textVal = ref<string>("你好");
</script><style lang="less" scoped></style>

子组件

<template><div v-if="propsData.modelValue"><div class="box"><div>接受到的isShow:{{ propsData.modelValue }}</div><button @click="clsoe">关闭</button></div></div>
</template><script setup lang="ts">
import {ref,reactive,defineProps,defineEmits,
} from "vue";
/*v-model 其实是一个语法糖 通过props 和 emit组合而成的1.默认值的改变
prop:value -> 默认参数是modelValue,当然也可以自定义v-model:isShow1="isShow;
事件:input -> update:modelValue;
v-bind 的 .sync 修饰符和组件的 model 选项已移除
新增 支持多个v-model
新增 支持自定义 修饰符 Modifiers
*/
// 注意点: 1.vue2中是value vue3中是modelValuetype Props = {modelValue: boolean; // v-model默认值 modelValue  };
};let propsData = defineProps<Props>();
let emit = defineEmits(["update:modelValue","update:text",
]); // update:modelValue与props中的modelValue保持一致
let clsoe = () => {emit("update:modelValue", false);
};
</script><style lang="less" scoped>
.box {width: 200px;height: 200px;border: 1px solid #ccc;
}
</style>

多个model在自定义组件中使用场景

自定义修饰符Modifiers

内置修饰符 v-model.trim、自定义修饰符v-model:text.isSq

添加到组件 v-model 的修饰符将通过 modelModifiers prop 提供给组件。在下面的示例中,我们创建了一个组件,其中包含默认为空对象的 modelModifiers prop

父组件

<template><div class=""></div><button @click="isShow = !isShow">开关</button><div>isShow:{{ isShow }}</div><div>textVal:{{ textVal }}</div><hr /><!-- 内置修饰符 v-model.trim、自定义修饰符v-model:text.isSq  --><com v-model:text.isSq="textVal" v-model="isShow"></com>
</template><script setup lang="ts">
import { ref, reactive } from "vue";
import com from "./components/twenty.vue";
let isShow = ref<boolean>(true);
let textVal = ref<string>("你好");
</script><style lang="less" scoped></style>

子组件

<template><div v-if="propsData.modelValue"><div class="box"><div>接受到的isShow:{{ propsData.modelValue }}</div><button @click="clsoe">关闭</button>内容:<input@change="change":value="propsData.text"type="text"/></div></div>
</template><script setup lang="ts">
import {ref,reactive,defineProps,defineEmits,
} from "vue";
/*v-model 其实是一个语法糖 通过props 和 emit组合而成的1.默认值的改变
prop:value -> 默认参数是modelValue,当然也可以自定义v-model:isShow1="isShow;
事件:input -> update:modelValue;
v-bind 的 .sync 修饰符和组件的 model 选项已移除
新增 支持多个v-model
新增 支持自定义 修饰符 Modifiers
*/
// 注意点: 1.vue2中是value vue3中是modelValuetype Props = {modelValue: boolean; // v-model默认值 modelValue// isShow1: boolean;text: string; // 自定义v-modeltextModifiers?: {// modelValueModifiers默认是这样写 我们这里是使用的自定义v-modelisSq: boolean;// default: () => {// }};
};let propsData = defineProps<Props>();
let emit = defineEmits(["update:modelValue","update:text",
]); // update:modelValue与props中的modelValue保持一致
let clsoe = () => {emit("update:modelValue", false);
};
let change = (e: Event) => {// 第三方组件都是这样做v-model的// let target = e.target; //let target: EventTarget | null  已声明“target”,但无法读取其值。let target = e.target as HTMLInputElement;emit("update:text",propsData?.textModifiers?.isBt? target.value + "帅气": target.value); // 自定义了修饰符就+变态二字
};
</script><style lang="less" scoped>
.box {width: 200px;height: 200px;border: 1px solid #ccc;
}
</style>

19 vue3之定义自定义指令Directive&按钮鉴权-CSDN博客文章浏览阅读153次。directive-自定义指令(属于破坏性更新)Vue中有v-if,v-for,v-bind,v-show,v-model 等等一系列方便快捷的指令 今天一起来了解一下vue里提供的自定义指令Vue3指令的钩子函数created 元素初始化的时候beforeMount 指令绑定到元素后调用 只调用一次mounted 元素插入父级dom调用beforeUpdate 元素被更新之前调用update 这个周期方法被移除 改用updatedbeforeUnmount 在元素被移除前调用https://blog.csdn.net/qq_37550440/article/details/142525714?sharetype=blogdetail&sharerId=142525714&sharerefer=PC&sharesource=qq_37550440&spm=1011.2480.3001.8118

相关文章:

18 vue3之自动引入ref插件深入使用v-model

自动引入插件后无需再引入ref等 使用自动引入插入无需在import { ref, reactive } from "vue"做这样的操作 npm i unplugin-auto-import - D vite配置 import AutoImport from unplugin-auto-import/vite //使用vite版本 export default defineConfig({plugins: [v…...

【Spring】lombok、dbUtil插件应用

一、lombok插件 1. 功能&#xff1a;对实体类自动&#xff0c;动态生成get、set方法&#xff0c;无参、有参构造..... 2. 步骤&#xff1a; &#xff08;1&#xff09;idea安装插件(只做一次) &#xff08;2&#xff09;添加坐标 &#xff08;3&#xff09;编写注解 NoArgsCo…...

【学习笔记】WSL

WSL 1、 介绍 1.1、概述 1.2、版本 1.3、配置安装 2、 基本 2.1、基本命令 1、 介绍 1.1、概述 WSL 是 Windows Subsystem for Linux 的缩写&#xff0c;中文称为 Windows 下的 Linux 子系统。它是微软在 Windows 上提供的一种功能&#xff0c;允许用户在 …...

python assert 断言用法

语法&#xff1a; try:assert 条件表达式, "可选的错误消息" except AssertionError as error:print(f"断言失败&#xff1a;{error}")其中&#xff0c; try...except是异常处理语法结构&#xff0c;try可以测试代码块中的错误&#xff0c;并在出现异常时…...

MySQL事务、索引、数据恢复和备份

MySQL事务、索引、数据恢复和备份 1.MySQL的事务处理 事务就是将一组SQL语句放在同一批次内去执行 如果一个SQL语句出错&#xff0c;则该批次内的所有SQL都将被取消执行 MySQL的事务实现方法 : SET AUTOCOMMIT 使用SET语句来改变自动提交模式 SET AUTOCOMMIT 0; # 关…...

什么是chatgpt?国内有哪些类gpt模型?

什么是ChatGPT&#xff1f; “ChatGPT”这个名字越来越多地出现在我们的生活中。简单来说&#xff0c;ChatGPT是OpenAI开发的一种人工智能对话模型。它基于GPT&#xff08;Generative Pre-trained Transformer&#xff0c;生成式预训练变换模型&#xff09;架构&#xff0c;能…...

ISP基本框架及算法介绍 ISP(Image Signal Processor)

ISP基本框架及算法介绍 ISP(Image Signal Processor)&#xff0c;即图像处理&#xff0c;主要作用是对前端图像传感器输出的信号做后期处理&#xff0c;主要功能有线性纠正、噪声去除、坏点去除、内插、白平衡、自动曝光控制等&#xff0c;依赖于ISP才能在不同的光学条件…...

Stable Diffusion 的 ControlNet 主要用途

SD&#xff08;Stable Diffusion&#xff09;中的ControlNet是一种条件生成对抗神经网络&#xff08;Conditional Generative Adversarial Network, CGAN&#xff09;的扩展技术&#xff0c;它允许用户通过额外的输入条件来控制预训练的大模型&#xff08;如Stable Diffusion&a…...

矩阵分析 学习笔记4 内积与Gram矩阵

内积 定义 由于对称&#xff0c;第二变元线性那第一变元也线性了。例如这个&#xff1a;...

iOS 消息机制详解

应用 解决NSTimer、CADisplayLink循环引用。 二者都是基于runloop的定时器&#xff0c;由于处理事件内容不一样&#xff0c;runloop 每运行一次运行耗时就不一样&#xff0c;无法准确的定时触发timer的事件。 NSProxy 与 NSObject 如果继承自NSProxy 直接开始消息转发&…...

深入理解Spring Data JPA与接口编程

目录 1. 什么是Spring Data JPA&#xff1f; 2. 如何使用Spring Data JPA&#xff1f; 3. 示例代码 4. 使用Query注解 5. 拓展知识&#xff1a;接口编程的好处 6. 结论 在软件开发领域&#xff0c;接口&#xff08;Interface&#xff09;是一种定义了方法签名但没有实现的…...

Wireshark学习使用记录

wireshark 是一个非常好用的抓包工具&#xff0c;使用 wireshark 工具抓包分析&#xff0c;是学习网络编程必不可少的一项技能。 原理 Wireshark使用的环境大致分为两种:一种是电脑直连互联网的单机环境&#xff0c;另外一种就是应用比较多的互联网环境&#xff0c;也就是连接…...

OpenCV特征检测(9)检测图像中直线的函数HoughLines()的使用

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在二值图像中使用标准 Hough 变换查找直线。 该函数实现了用于直线检测的标准 Hough 变换或标准多尺度 Hough 变换算法。详见 http://homepages…...

力扣 中等 445.两数相加 II

文章目录 题目介绍题解 题目介绍 题解 首先反转两个链表&#xff0c;再调用 2. 两数相加 链接的代码&#xff0c;得到链表&#xff0c;最后将其翻转即可。 class Solution {public ListNode addTwoNumbers(ListNode l1, ListNode l2) {l1 reverseList(l1);l2 reverseList(l…...

华为云徐峰:AI赋能应用现代化,加速软件生产力跃升

2024年9月19日&#xff0c;在华为全联接大会2024的“AI赋能应用现代化&#xff0c;加速软件生产力跃升”论坛上&#xff0c;华为云PaaS服务产品部部长徐峰发表了主题演讲&#xff0c;介绍了未来应用智能化演进趋势&#xff0c;分享了智能化应用的行业实践&#xff0c;并发布了华…...

C发送邮件技巧:如何批量发送个性化邮件?

C发送邮件的高效步骤指南&#xff1f;C语言怎么实现SMTP发邮件&#xff1f; 为了提高邮件营销的效果&#xff0c;掌握C发送邮件的技巧&#xff0c;特别是如何批量发送个性化邮件&#xff0c;显得尤为重要。AokSend将详细介绍C发送邮件的技巧&#xff0c;帮助您在邮件营销中取得…...

基于python+spark的外卖餐饮数据分析系统设计与实现(含论文)-Spark毕业设计选题推荐

博主介绍&#xff1a; 大家好&#xff0c;本人精通Java、Python、C#、C、C编程语言&#xff0c;同时也熟练掌握微信小程序、Php和Android等技术&#xff0c;能够为大家提供全方位的技术支持和交流。 我有丰富的成品Java、Python、C#毕设项目经验&#xff0c;能够为学生提供各类…...

权限维持——Linux

前提 已经提权到管理员权限 一、创建账户 1、创建一个自定义密码的账户 已知&#xff0c;Linux中所有的用户的信息 存储在/etc/passwd这个文件中 。可以利用管理员权限修改这个文件&#xff0c; 添加一个账户 。 利用linux中的密码的编码算法 生成对应密码 &#xff08;不知…...

申请SSL证书闭坑方法

上来先问一个问题&#xff0c;为什么自己不能成立CA机构发SSL证书产品&#xff1f;为什么有的CA机构不能发被信任SSL证书产品&#xff1f; 真正原因是&#xff0c;SSL证书里面的根证书需要提前放入操作系统及浏览器&#xff0c;然而这些浏览器和操作系统的版本很多&#xff0c…...

linux 下域名解析错误

本文参考这里 作者&#xff1a;程序那点事儿 日期&#xff1a;2024/01/31 16:25 ping raw.githubusercontent.com&#xff0c;ping这个域名时&#xff0c;发现返回的是本地ip 原因是&#xff0c;配置了本地网关地址 192.168.xx.1 用命令查看默认网卡的网关&#xff1a;nmcli …...

Java 语言特性(面试系列1)

一、面向对象编程 1. 封装&#xff08;Encapsulation&#xff09; 定义&#xff1a;将数据&#xff08;属性&#xff09;和操作数据的方法绑定在一起&#xff0c;通过访问控制符&#xff08;private、protected、public&#xff09;隐藏内部实现细节。示例&#xff1a; public …...

以下是对华为 HarmonyOS NETX 5属性动画(ArkTS)文档的结构化整理,通过层级标题、表格和代码块提升可读性:

一、属性动画概述NETX 作用&#xff1a;实现组件通用属性的渐变过渡效果&#xff0c;提升用户体验。支持属性&#xff1a;width、height、backgroundColor、opacity、scale、rotate、translate等。注意事项&#xff1a; 布局类属性&#xff08;如宽高&#xff09;变化时&#…...

React19源码系列之 事件插件系统

事件类别 事件类型 定义 文档 Event Event 接口表示在 EventTarget 上出现的事件。 Event - Web API | MDN UIEvent UIEvent 接口表示简单的用户界面事件。 UIEvent - Web API | MDN KeyboardEvent KeyboardEvent 对象描述了用户与键盘的交互。 KeyboardEvent - Web…...

爬虫基础学习day2

# 爬虫设计领域 工商&#xff1a;企查查、天眼查短视频&#xff1a;抖音、快手、西瓜 ---> 飞瓜电商&#xff1a;京东、淘宝、聚美优品、亚马逊 ---> 分析店铺经营决策标题、排名航空&#xff1a;抓取所有航空公司价格 ---> 去哪儿自媒体&#xff1a;采集自媒体数据进…...

华为云Flexus+DeepSeek征文|DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建

华为云FlexusDeepSeek征文&#xff5c;DeepSeek-V3/R1 商用服务开通全流程与本地部署搭建 前言 如今大模型其性能出色&#xff0c;华为云 ModelArts Studio_MaaS大模型即服务平台华为云内置了大模型&#xff0c;能助力我们轻松驾驭 DeepSeek-V3/R1&#xff0c;本文中将分享如何…...

聊一聊接口测试的意义有哪些?

目录 一、隔离性 & 早期测试 二、保障系统集成质量 三、验证业务逻辑的核心层 四、提升测试效率与覆盖度 五、系统稳定性的守护者 六、驱动团队协作与契约管理 七、性能与扩展性的前置评估 八、持续交付的核心支撑 接口测试的意义可以从四个维度展开&#xff0c;首…...

OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()

操作系统&#xff1a;ubuntu22.04 OpenCV版本&#xff1a;OpenCV4.9 IDE:Visual Studio Code 编程语言&#xff1a;C11 算法描述 在 GPU 上对图像执行 均值漂移滤波&#xff08;Mean Shift Filtering&#xff09;&#xff0c;用于图像分割或平滑处理。 该函数将输入图像中的…...

DeepSeek 技术赋能无人农场协同作业:用 AI 重构农田管理 “神经网”

目录 一、引言二、DeepSeek 技术大揭秘2.1 核心架构解析2.2 关键技术剖析 三、智能农业无人农场协同作业现状3.1 发展现状概述3.2 协同作业模式介绍 四、DeepSeek 的 “农场奇妙游”4.1 数据处理与分析4.2 作物生长监测与预测4.3 病虫害防治4.4 农机协同作业调度 五、实际案例大…...

有限自动机到正规文法转换器v1.0

1 项目简介 这是一个功能强大的有限自动机&#xff08;Finite Automaton, FA&#xff09;到正规文法&#xff08;Regular Grammar&#xff09;转换器&#xff0c;它配备了一个直观且完整的图形用户界面&#xff0c;使用户能够轻松地进行操作和观察。该程序基于编译原理中的经典…...

嵌入式常见 CPU 架构

架构类型架构厂商芯片厂商典型芯片特点与应用场景PICRISC (8/16 位)MicrochipMicrochipPIC16F877A、PIC18F4550简化指令集&#xff0c;单周期执行&#xff1b;低功耗、CIP 独立外设&#xff1b;用于家电、小电机控制、安防面板等嵌入式场景8051CISC (8 位)Intel&#xff08;原始…...