vue3 modifier
vue3 modifier 是什么?
modifier 中文意思为修饰符.
在vue3中主要是体现在v-model上,vue3允许我们添加自定义修饰符。
比如说这样:
<template>
<img alt="Vue logo" src="./assets/logo.png" />
<!-- <HelloWorld msg="Welcome to Your Vue.js App" /> -->
<Test v-model:userinput.trimall="userinput"></Test>
<p>{{userinput}}</p>
</template> <script setup>
import HelloWorld from "./components/HelloWorld.vue";
import Test from "./components/Test.vue";
import {ref} from 'vue'
const userinput = ref(''); </script>
我们自定义的修饰符在子组件中如何获取呢?其实很简单,
我们v-model:msg.trimall 传递到子组件中一共有两个属性,如下所示:
const props = defineProps({
userinput: {
type: String,
default: "",
},
userinputModifiers: {
type: Object,
default: () => ({}),
},
});
我们的子组件的自定义修饰符全部存放在userinputModifiers这个对象里面,这个对象key组成是 属性+Modifiers,所以
<Test v-model:something.tom="value"></Test>
我们的子组件就会收到除去something属性之外额外的属性 somethingModifiers。
接着上面的说下去,
userinputModifiers 会有一个属性是你的修饰符名称,比如:
所以我们就可以根据这个值做我们想做的事情了.
代码示例如下:
App.vue
<template>
<img alt="Vue logo" src="./assets/logo.png" />
<!-- <HelloWorld msg="Welcome to Your Vue.js App" /> -->
<Test v-model:userinput.trimall="userinput" ></Test>
<p>{{userinput}}</p>
</template> <script setup>
import HelloWorld from "./components/HelloWorld.vue";
import Test from "./components/Test.vue";
import {ref} from 'vue'
const userinput = ref(''); </script> <style>
#app {
font-family: Avenir, Helvetica, Arial, sans-serif;
-webkit-font-smoothing: antialiased;
-moz-osx-font-smoothing: grayscale;
text-align: center;
color: #2c3e50;
margin-top: 60px;
}
</style>
Test.vue
<template>
<div>
<input :value="userinput" @input="onInput" type="text" />
</div>
</template> <script setup>
import { getCurrentInstance, defineProps, toRef, useAttrs } from "vue"; const props = defineProps({
userinput: {
type: String,
default: "",
},
userinputModifiers: {
type: Object,
default: () => ({}),
},
}); const userinput = toRef(props, "userinput");
const instance = getCurrentInstance(); console.log("value:", props);
function onInput({ target }) {
var value = props.userinputModifiers.trimall
? target.value.replace(/\s/g, "")
: target.value;
instance.emit("update:userinput", value);
}
</script>
注:
在vue3.2之前 还是有 useContext 这个函数的,之后这个函数被废弃了,取而代之的是 useAttrs(主要用来获取一些非props属性) 和 useSlots (如果你不编写JSX或者TSX,这个函数你应该用不到)
是故学然后知不足 23:29:33
vue3 modifier的更多相关文章
- vue2升级vue3指南(二)—— 语法warning&error篇
本文总结了vue2升级vue3可能会遇到的语法警告和错误,如果想知道怎样升级,可以查看我的上一篇文章:vue2升级vue3指南(一)-- 环境准备和构建篇 Warning 1.deep /deep/和 ...
- [转]Java反射之如何判断类或变量、方法的修饰符(Modifier解析)
Java针对类.成员变量.方法,有很多修饰符,例如public.private.static.final.synchronized.abstract等,这些修饰符用来控制访问权限或其他特性. 本文就用 ...
- jmeter 中的 HTTP URL Re-writing Modifier
URL rewriting modifier,因为tomcat的session实现不是通过cookie的,而是通过session id的,就是说,用户登录有了session之后,tomcat就会维护一 ...
- 【转载】#273 - Parameter Modifier Summary
Here's a summary of the different parameter modifiers and how the behavior changes for each, when us ...
- 解决Deprecated: preg_replace(): The /e modifier is deprecated, use
使用php5.5运行ecshop的时候出现如下错误Deprecated: preg_replace(): The /e modifier is deprecated, use preg_replace ...
- 7.modifier插件的自定义和使用
1.在plugins下面创建一个文件 modifier.changeDate.php 编写: <?php function smarty_modifier_changeDate($utime,$ ...
- Sample Code for Qp_preq_pub.Price_request Api to Simulate an Ask for Promotion Modifier
DECLARE p_line_tbl QP_PREQ_GRP.LINE_TBL_TYPE; p_qual_tbl QP_PREQ_GRP.QUAL_TBL_TYPE; p_line_attr_tbl ...
- vue3+typescript引入外部文件
vue3+typescript中引入外部文件有几种方法 (eg:引入echarts) 第一种方法: 1 indext.html中用script引入 <div id="app" ...
- 预计2019年发布的Vue3.0到底有什么不一样的地方?
摘要: Vue 3.0预览. 原文:预计今年发布的Vue3.0到底有什么不一样的地方? 作者:小肆 微信公众号:技术放肆聊 Fundebug经授权转载,版权归原作者所有. 还有几个月距离 vue2 的 ...
- java反射(java.lang.reflect)---java.lang.reflect.Modifier中状态码
1. 详情请看jvm(虚拟机)规范 java.lang.reflect.Modifier public static final int ABSTRACT 1024 public static fin ...
随机推荐
- SpringBoot整合EasyPoi 封装Excel导出通用工具类,行高自适应,导出图片
导读 下午抽空封装一个通用导出Excel工具类.之前还写过一篇EasyPoi导入参数校验,批注导出,点我直达 添加依赖 <!-- easy poi --> <dependency&g ...
- Solo 开发者周刊 (第2期):一站式解决各类办公绘图问题
这里会整合 Solo 社区每周推广内容.产品模块或活动投稿,每周五发布.在这期周刊中,我们将深入探讨开源软件产品的开发旅程,分享来自一线独立开发者的经验和见解.本杂志开源,欢迎投稿. 好文推荐 重新思 ...
- 如何去除字符串中的 "\n" ?80% 的同学错了!
大家好,我是鱼皮,今天分享一个小知识. 我最近负责的工作是设计一个 SQL 解析引擎.简单来说,就是将一个 SQL 表达式字符串,解析为一颗对象树,从而执行查询等一系列操作. 在最开始,我就遇到了一个 ...
- ComfyUI进阶:Comfyroll插件 (一)
ComfyUI进阶:Comfyroll插件 (一) 前言: 学习ComfyUI是一场持久战,而Comfyroll Studio 是一款功能强大的自定义节点集合,专为 ComfyUI 用户打造,旨在提供 ...
- 引入样式在Element UI (Vue 2)和Element Plus (Vue 3)中的不同
引入样式 Element UI (Vue 2): import 'element-ui/lib/theme-chalk/index.css'; Element Plus (Vue 3): im ...
- [oeasy]python0052_ raw格式字符串_单引号_双引号_反引号_ 退格键
转义字符 回忆上次内容 最近玩的是\n.\r 之外的转义序列 \a是 ␇ (bell) \t是 水平制表符 \v是 换行不回车 通过 16 进制数值转义 \xhh 把(hh)16 进制对应的 asci ...
- 一种优秀的虚拟机内存架构 - AQ
源链接:https://www.axa6.com/zh/an-excellent-virtual-machine-memory-architecture 简介 虚拟机内存架构直接影响虚拟机的性能和占用 ...
- UE中返回值为数组的时候,无法传递Reference的问题
我如果要修改一个类或者结构体的成员变量, 那么我需要通过函数返回 也就是说Struct目前不能传递引用,只能传递备份
- locust多进程实现分布式压测遇到的问题
多进程分布式的实现: locust分布式时,需借助命令locust 一个一个启动worker,在使用中有点繁琐, 下面借助于多进程,按既定worker数量,一键启动: from locust impo ...
- 1分钟了解HashSet的使用
前言:刷leetcode的时候体验到hashset有多厉害了,用了他剪枝之后直接不爆超时了.速度大大滴快 使用方法 1.创建set对象Set<Integer>set=new HashSet ...
