首页 > 其他分享 >Vue3组件间传值

Vue3组件间传值

时间:2022-10-13 04:11:12浏览次数:74  
标签:console log value let Vue3 组件 ref event 传值


12种方式

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");
let inp = ref(null);
onMounted(() => {
  console.log(inp.value.value);
  setTimeout(() => {
    inp.value.value = 20;
    msg = inp.value.value;
  }, 1000);
});

let abc = ref("默认值");
let d = ref('')
const updatas = (data) => {
  console.log("子组件传过来的值:" + data);
  //   console.dir(data);
  d.value = data;
  console.dir('d:' + d.value);
};
// let bcd = ref()
abc = computed(() => {
  console.log(d);
  return d.value
});
</script>

image

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>

image

标签:console,log,value,let,Vue3,组件,ref,event,传值
From: https://www.cnblogs.com/fangcunjian/p/16777195.html

相关文章

  • vue 异步请求数据后,用v-if,显示组件,这样初始化的值就在开始的时候传进去了
    请求到数据才会有的一个组件,并把数据传进组件中---------------------------------------------生活的意义并不是与他人争高下,而在于享受努力实现目标的过程,结果是对......
  • JS组件系列——表格组件神器:bootstrap table(还没细看)
    前言:之前一直在忙着各种什么效果,殊不知最基础的BootstrapTable用法都没有涉及,罪过,罪过。今天补起来吧。上午博主由零开始自己从头到尾使用了一遍BootstrapTable,遇到不少......
  • vue 给元素或子组件添加标识ref
    给元素或子组件注册引用信息(id的替代者)//添加ref<h1ref="title"></h1>//相当于<h1id="title"></h1>//获取refthis.$refs.title;//相当于document.getElementById("title")......
  • vue11 组件初识
    序组件(component)是vue.js最强大的功能之一。组件的作用就是封装可重用的代码,通常一个组件就是一个功能体,便于在多个地方都能够调用这个功能体。每个组件都是Vue的实例对......
  • webpack5 + vue3 打包问题
    1,打包后本地访问空白或者404问题解决办法:  2, 打包CSS图片路径不正确问题在生产模式下,使用的MiniCssExtractPlugin.loader代替style-loader,但图片、字体等资源......
  • HTML5 组件Canvas实现图像灰度化
    作者| 贾志刚HTML5发布很长一段时间了,一直以来没有仔细的看过,学习后,发现HTML5中的Canvas组件功能是如此的强大,今天我们一起来看看HTML5Canvas是怎么做到的吧!1.新建一个h......
  • Angular入门一篇就够了(项目搭建、自定义组件、指令、逻辑等)
    第一步、安装Angular/CLInpminstall-g@angular/cli第二步、通过安装的脚手架创建项目/应用ngnewmy-app第三步、运行应用或者看pakcage.json的配置(npmr......
  • 自定义组件 v-loading
    通过指令方式<template><divclass="loading-container"><icon-syncclass="icon"spin/></div></template><scriptlang="ts"setup>import{IconSy......
  • vue组件通信方式有哪些?
    vue组件通信方式一、props(父向子传值----自定义属性)/$emit(子向父传值-----自定义事件)父组件通过props的方式向子组件传递数据,而通过$emit子组件可以向父组件通信......
  • 02_四大应用组件之Activity
    02_四大应用组件之Activity1.理论概述1.1Activity的理解Servlet的回顾理解狭义:Servlet是一个interface,我们的Servlet类都必须是此接口的实现类广义:Servlet是一......