Vue3组件间传值
1. 父组件 ./father.vue
点击查看代码
<template>
<h1>father:</h1>
<h3>子组件传过来的:{{ abc }}</h3>
<input type="text" ref="inp" v-model="msg" />
<h4>=================================</h4>
<son :msg="'父组件传过来的:' + msg" @updatas="updatas"></son>
<h4>=================================</h4>
<middle></middle>
</template>
<script setup>
import middle from "./middle.vue";
import son from "./son.vue";
import { computed, onMounted, reactive, ref, watch } from "vue";
let msg = ref("0062"); // ref初始化值基本类型,reactive用来初始化对象、数组
//这里 let msg = proxy({value:'0062'})
let inp = ref(null); // 获取ref:inp
console.log(inp.value); // null
// console.log(inp.value.value); // 报错:不能读取为空(null)的属性
onMounted(() => {
console.log(inp.value.value); // 0062
setTimeout(() => {
inp.value.value = 20; // 改变输入框的值为20
msg = inp.value.value; // 直接赋值,失去其响应性。原本的msg是个对象可改为msg.value=inp.value.value;
// 这里是mounted函数内部,当再次输入值的时候,msg会重获其响应性
// msg在vue的template中使用,不需要.value;
}, 1000);
});
let abc = ref("默认值");
let d = ref('')
const updatas = (data) => { // 接收子组件传来的值,在子组件利用defineEmits调用该函数
console.log("子组件传过来的值:" + data); // data为子组件传进来的参数值
// console.dir(data);
d.value = data; // 这里的d.value是因为vue3里面ref赋值的变量需要通过.value的形式取值,
// ref里面是调用的reactive。
console.dir('d:' + d.value);
};
// let bcd = ref()
abc = computed(() => {
console.log(d);
return d.value
});
</script>
2. 子组件 ./son.vue
点击查看代码
<template>
<h1>son:</h1>
<h3>{{ msg }}</h3>
<input type="text" ref="inpu" @input="handlerchange" />
</template>
<script setup>
import { ref, onMounted, nextTick } from "vue";
defineProps({
msg: {
type: String,
default: "son",
},
});
const em1 = defineEmits(["updatas"]);
let inpu = ref(null); // 获取ref:inpu
// let valu = ref('00'); // 初始化valu的值为‘00’
let time = ref("");
const handlerchange = (event) => {
// event.currentTarget.value直接实时获取input输入框的值
// console.log(event.currentTarget.value);
// console.log(event);
// console.dir(event.currentTarget);
let a = event.currentTarget.value
clearTimeout(time);
time = setTimeout(() => { // setTimeout计时结束会执行里面的代码 // 宏任务
// console.log(inpu.value.value); // 通过ref获取输入的值
// console.log(event);
// console.dir(event.currentTarget); // event.currentTarget是一个实时值,而不是快照。随着事件冒泡阶段的结束,它将被解引用,为null。
em1("updatas", a);
}, 800);
};
</script>
Vue3组件间传值的更多相关文章
- Vue 组件间传值
前言 Vue 作为现在比较火的框架之一,相信您在使用的过程中,也会遇到组件间传值的情况,本文将讲解几种 Vue 组件间传值的几种方法,跟着小编一起来学习一下吧! 实现 注意: 学习本文,需要您对 Vu ...
- react组件间传值详解
一.父子组件间传值 <1>父传子 父组件:
- Vue中组件间传值常用的几种方式
版本说明: vue-cli:3.0 一.父子组件间传值 1.props/$emit -父组件==>>子组件: 子组件中通过定义props接收父组件中通过v-bind绑定的数据 父组件代码 ...
- Vue学习(二)-Vue中组件间传值常用的几种方式
版本说明:vue-cli:3.0 主要分为两类: 1.父子组件间的传值 2.非父子组件间的传值 1.父子组件间传值 父组件向子组件传值 第一种方式: props 父组件嵌套的子组件中,使用v-bind ...
- React Native 系列(五) -- 组件间传值
前言 本系列是基于React Native版本号0.44.3写的.任何一款 App 都有界面之间数据传递的这个步骤的,那么在RN中,组件间是怎么传值的呢?这篇文章将介绍到顺传.逆传已经通过通知传值. ...
- Vue组件间传值 v-model
使用过Vue的同学应该都了解组件之间传值 父组件 --> 子组件 : props 子组件 --> 父组件 : 事件 其实有一种更为简单的方法,是基于上述两种方法,那就是 v-model 我 ...
- Angular中不同的组件间传值与通信的方法
主要分为父子组件和非父子组件部分. 父子组件间参数与通讯方法 使用事件通信(EventEmitter,@Output): 场景:可以在父子组件之间进行通信,一般使用在子组件传递消息给父组件: 步骤: ...
- vue——父子组件间传值
(1)父组件给子组件传值(商品详情页): 根据订单类型,判断显示立即购买/立即拼单: 通过props来传递参数 父组件(商品详情页) 父组件调用子组件,在子组件的标签中,通过:数据名称=”数据”的形式 ...
- taro 填坑之路(二)taro 通过事件监听 实现组件间传值
1.组件传值的方式 2.事件监听原理 3.事件管理器 utils/event.js /** * 事件池(事件管理器) * 通过事件监听传值 */ class Event { constructor() ...
随机推荐
- java基础———标识符和关键字
标识符以字母开头 (A-Z)或(a-z) 美元符($) 下划线(_) 不能以关键字作为变量名或者方法名 标识符大小写不能混淆 可以中文(不建议) 常用的关键字
- 【Java】学习路径48-线程锁ReentrantLock
与上一章学习的线程锁synchronized类似,都是为了解决线程安全的问题. 使用方法: 新建一个ReentrantLock对象.(如果使用Thread多线程,则需要声明static静态) 然后在需 ...
- Springboot连接数据库
好家伙, 这里使用的软件是IDEA 2021 1.新建项目 2.更改配置项目文件目录 更改前: 更改后: 2.1.更改pom.xml文件 在该文件中添加: <dependency> < ...
- KingbaseES V8R3集群管理维护案例之---集群迁移单实例架构
案例说明: 在生产中,需要将KingbaseES V8R3集群转换为单实例架构,可以采用以下方式快速完成集群架构的迁移. 适用版本: KingbaseES V8R3 当前数据库版本: TEST=# s ...
- 《!--suppress ALL --> 在Android XML 文件中的用途是什么?
<!--suppress ALL --> 在Android XML 文件中的用途是什么? 警告一次又一次地出现在谷歌地图的 XML 文件中,但是当我使用时,所有警告都被禁用.那么压制所有评 ...
- C++ | unordered_map 自定义键类型
C++ unordered_map 使用自定义类作为键类型 C++ unordered_map using a custom class type as the key
- 编译安装Erlang+RabbitMQ
楔子 由于国内信创越来越火,客户现场也开始使用国产操作系统替换CentOS之类的开源操作系统,最近做实施的同事找到我,说现场是ARM架构的操作系统编译安装RabbitMQ一直提示无法启动也没有日志文件 ...
- 从Java 9 到 Java 17 新特性梳理
Java 9 新的创建集合的方法 // [1, 2, 3, 4] List<Integer> integers = List.of(1, 2, 3, 4); // {1,2,3} ...
- linux中通过date命令获取昨天或明天时间的方法
date命令可以获取当前的时间,通过man,可以看到date有很多参数可以用,很容易做到格式化 # 获取当前日期 date +"%F" 或者 date +"%Y-%m-% ...
- Alertmanager篇
报一直是整个监控系统中的重要组成部分,Prometheus监控系统中,采集与警报是分离的.警报规则在 Prometheus 定义,警报规则触发以后,才会将信息转发到给独立的组件 Alertmanage ...