vue2 组件传递数据

news2024/11/15 19:38:31

向子组件传递数据通过Props

1.创建子组件

详细步骤:
1.在components创建子组件
2.等父组件接受到参数后通过Props来接受父组件传递过来的数据

<template>
    <div id="app">
        <h2>title:{{ title }}</h2>
        <p>tips:{{ tips }}</p>
    </div>
</template>
<script>
export default{
    data(){
        return{
        }
    },
    props:['title','tips']
}
</script>

2.创建父组件

详细步骤:
1.导入子组件页面路径
2.在components注册组件
3.创建子组件标签
4.在子组件标签接受子组件传递过来的数据

<template>
  <div id="app">
    <my-component />
    <!-- <HelloWorld /> -->
    <hello-world />
    <my-son  title="标题" :tips="tips"/>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue';
import MySon from './components/MySon.vue'
export default{
  name:'App',
  components:{HelloWorld,MySon},
  data(){
    return{
      tips:'一个友好的提示语'
    }
  }
}
</script>
  
<style>

</style>

在这里插入图片描述
效果图
在这里插入图片描述

父传子优化代码

如果传入的prop很多,可以使用传入整体props对象
在这里插入图片描述

案例 父组件输入的内容在子组件展示

子组件
子组件有哪些操作?
1.创建一个新的页面
2.用props来接受父页面传递的参messageFormParent
3.使用{{}} 来展示内容

<template>
    <div id="app">
        <h3>this is parent component</h3>
        <input type="text" >
        <p>收到父组件的消息 {{ messageFormParent }}</p>
    </div>
</template>
<script>
export default{
    data(){
        return{
        }
    },
    props:['messageFormParent'],
}
</script>

父组件
1.导入子组件页面
2.注册子页面
3.创建子组件标签
4.在子组件标签中 通过v-bind绑定数据,通过messageFormParent传递出去
5.组件中双向数据绑定 :这个是父组件input输入框,子组件也跟着展示,父组件通过v-model来绑定

<template>
  <div id="app">
    <h3>this is parent component</h3>
    <input type="text" v-model="message">
    <p>收到子组件的消息</p>
    <my-son :messageFormParent="message" />
  </div>
</template>

<script>
import MySon from './components/MySon.vue'
export default{
  name:'App',
  components:{MySon},
  data(){
    return{
      message:''
      }
    }
  }
</script>
  
<style>

</style>

案例 子组件输入的内容在父组件展示 两种写法

第一种写法 通过v-bind绑定事件和v-on监听事件

操作步骤
1.子组件input输入框通过v-model双向数据绑定;再通过按键事件来监听输入的内容
2.父组件在子组件标签里通过v-bind绑定事件和v-on监听事件
3.在子组件内通过按键监听事件用$emit来接收父组件传递过来的事件和要给父组件传递过去的参数
4.父组件通过监听事件展示子组件传递过来的数据展示
子组件

<template>
    <div id="app">
        <h3>子组件页面</h3>
        <!-- 子组件通过v-model双向数据绑定把消息传递给父组件 -->
        <!-- 通过keyup事件来监听这个输入的内容 -->
        <input type="text"  v-model="message" @keyup="send">
        <p>收到父组件的消息 {{ messageFormParent }}</p>
    </div>
</template>
<script>
export default{
    data(){
        return{
            message:'',
        }
    },
    props:['messageFormParent'],
    methods:{
        // 通过$emit向父组件传递消息
        send(){
            // reveiveOn:父组件传递过来的事件  message要传递的参数
            this.$emit('reveive',this.message)
        }
    }
}
</script>

父组件

<template>
  <div id="app">
    <h3>父组件页面</h3>
    <input type="text" v-model="message">
    <p>接收到子组件的消息:{{ messageChild }}</p>
    <my-son :messageFormParent="message" v-on:reveive ="reveive"/>
  </div>
</template>

<script>
import MySon from './components/MySon.vue'
export default{
  name:'App',
  components:{MySon},
  data(){
    return{
      message:'',
      messageChild:'',
      }
    },
    methods:{
      // 接受一个自定义事件来接收函数
      reveive(data){
        // 接受子组件传递过来的参数
        this.messageChild = data
      }
    }
  }
</script>
  
<style>

</style>

也可以通过v-model 双向数据绑定绑定

子组件

<template>
    <div id="app">
        <h3>子组件页面</h3>
        <!-- 子组件通过v-model双向数据绑定把消息传递给父组件 -->
        <!-- 通过keyup事件来监听这个输入的内容 -->
        <input type="text"  v-model="message" @keyup="send">
        <!-- <p>收到父组件的消息 {{ messageFormParent }}</p> -->
        <p>收到父组件的消息 {{ value  }}</p>
    </div>
</template>
<script>
export default{
    data(){
        return{
            message:'',
        }
    },
    // props:['messageFormParent'],
    props:['value'],
    methods:{
        // 通过$emit向父组件传递消息
        send(){
            // reveiveOn:父组件传递过来的事件  message要传递的参数
            this.$emit('input',this.message)
        }
    }
}
</script>

父组件

<template>
  <div id="app">
    <h3>父组件页面</h3>
    <input type="text" v-model="message">
    <p>接收到子组件的消息:{{ messageChild }}</p>
    <!-- <my-son :messageFormParent="message" v-on:reveive ="reveive"/> -->
    <my-son v-model="messageChild"/>
  </div>
</template>

<script>
import MySon from './components/MySon.vue'
export default{
  name:'App',
  components:{MySon},
  data(){
    return{
      message:'',
      messageChild:'',
      }
    },
    methods:{
      // 接受一个自定义事件来接收函数
      reveive(data){
        // 接受子组件传递过来的参数
        this.messageChild = data
      }
    }
  }
</script>
  
<style>

</style>

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1325040.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

java并发编程五 ReentrantLock,锁的活跃性

多把锁 一间大屋子有两个功能&#xff1a;睡觉、学习&#xff0c;互不相干。 现在小南要学习&#xff0c;小女要睡觉&#xff0c;但如果只用一间屋子&#xff08;一个对象锁&#xff09;的话&#xff0c;那么并发度很低 解决方法是准备多个房间&#xff08;多个对象锁&#xf…

idea中使用wsl作为启动项目的环境,便于linux环境下的测试

在idea中使用wsl作为启动项目的系统环境&#xff0c;首先安装wsl&#xff0c;这里不做过多的介绍&#xff0c;可以直接去微软官网看教程&#xff0c;也可以自己搜教程。 在wsl中安装jdk&#xff0c;linux中直接用命令安装openjdk即可 sudo apt-get updatesudo apt install ope…

ios微信小程序table头部与左侧固定双重滚动会抖动的坑,解决思路

正常情况是左右滑动时&#xff0c;左侧固定不动&#xff0c;上下滑动时表头不动&#xff1b;而且需求不是完整页面滚动。而是单独这个表滚动&#xff1b; 第一个坑是他有一个ios自带的橡胶上下回弹效果。导致滚动时整个表都跟着回弹&#xff1b; 这个是很好解决。微信开发官网…

在使用mapstruct,想忽略掉List<DTO>字段里面的,`data` 字段的映射, 如何写ignore: 使用@IterableMapping

在使用mapstruct,想忽略掉List字段里面的,data 字段的映射, 如何写ignore 代码如下: public interface AssigmentFileMapper {AssigmentFileDTO assigmentFileToAssigmentFileDTO(AssigmentFile assigmentFile);AssigmentFile assigmentFileDTOToAssigmentFile(Assigment…

Notepad++:多行数据操作

1&#xff09;删除关键字之后&#xff08;或之前&#xff09;的所有字符 删除s之后&#xff08;包含s&#xff09;的所有内容&#xff1b;快捷键&#xff1a;s.*$ 替换成功 删除s之前&#xff08;包含s&#xff09;的所有内容&#xff1b;快捷键&#xff1a;^.*s 2&#xff09…

MAC苹果笔记本电脑如何彻底清理垃圾文件软件?

苹果电脑以其流畅的操作系统和卓越的性能而备受用户喜爱。然而&#xff0c;随着时间的推移&#xff0c;系统可能会积累大量垃圾文件&#xff0c;影响性能。本文将介绍苹果电脑怎么清理垃圾文件的各种方法&#xff0c;以提升系统运行效率。 CleanMyMac X是一款专业的Mac清理软件…

语音识别之百度语音试用和OpenAiGPT开源Whisper使用

0.前言: 本文作者亲自使用了百度云语音识别,腾讯云,java的SpeechRecognition语言识别包 和OpenAI近期免费开源的语言识别Whisper(真香警告)介绍了常见的语言识别实现原理 1.NLP 自然语言处理(人类语言处理) 你好不同人说出来是不同的信号表示 单位k 16k16000个数字表示 1秒160…

智能优化算法应用:基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用&#xff1a;基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用&#xff1a;基于水基湍流算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.水基湍流算法4.实验参数设定5.算法结果6.…

Super访问父类成员

1 问题 当子类的成员变量或方法与父类同名时&#xff0c;可能模糊不清&#xff0c;应该怎么解决&#xff1f;如果子类重写了父类的某一个方法&#xff0c;我们又该怎么调用父类的方法&#xff1f; 2 方法 super调用成员属性&#xff1a; 当父类和子类具有相同的数据成员时&…

面向 NLP 任务的大模型 Prompt 设计

很久之前&#xff0c;我们介绍到&#xff0c;prompt是影响下游任务的关键所在&#xff0c;当我们在应用chatgpt进行nlp任务落地时&#xff0c;如何选择合适的prompt&#xff0c;对于SFT以及推理环节尤为重要。 不过&#xff0c;硬想不是办法&#xff0c;我们可以充分参考开源的…

小程序面试题 | 07.精选小程序面试题

&#x1f90d; 前端开发工程师&#xff08;主业&#xff09;、技术博主&#xff08;副业&#xff09;、已过CET6 &#x1f368; 阿珊和她的猫_CSDN个人主页 &#x1f560; 牛客高级专题作者、在牛客打造高质量专栏《前端面试必备》 &#x1f35a; 蓝桥云课签约作者、已在蓝桥云…

语音识别与人机交互:发展历程、挑战与未来前景

导言 语音识别技术作为人机交互领域的重要组成部分&#xff0c;近年来取得了巨大的发展。本文将深入研究语音识别与人机交互的发展历程、遇到的问题、解决过程、未来的可用范围&#xff0c;以及在各国的应用和未来的研究趋势。我们将探讨在这个领域&#xff0c;哪一方能取得竞争…

47 星南二楼

动态规划&#xff0c;相当于求解最长子序列问题 #include <iostream> using namespace::std; using std::cout; using std::cin; int n; int a[5100],dp[5100];int xnel(int n, int a[]) {int result 0;for(int i0; i<n; i){for(int j0; j<i; j){if(a[j]<a[…

每日一博 - Protobuf vs. Protostuff:性能、易用性和适用场景分析

文章目录 历史区别联系性能差异最佳实践场景分析小结 历史 对于Protostuff和Protobuf的关系&#xff0c;需要了解它们的起源和发展。 Protobuf&#xff08;Protocol Buffers&#xff09;是由Google开发的一种数据序列化格式&#xff0c;用于结构化数据的存储和交换。它最初是…

损失函数中正则化中的平方项的作用!!

正则化上的平方项 前言在损失函数中添加正则化项时&#xff0c;通常会使用平方项作为正则化项&#xff0c;原因主要有以下几点&#xff1a; 前言 在损失函数中添加正则化项的原因主要是为了防止过拟合。正则化是一种常用的防止过拟合的技术&#xff0c;它可以对模型的复杂度进…

java反射的实战教程(简单且高效)

1. 参考 建议按顺序阅读以下文章 学了这么久的java反射机制&#xff0c;你知道class.forName和classloader的区别吗&#xff1f; Java反射&#xff08;超详细&#xff01;&#xff09; 2. 实战 2.1 通过Class.forName()方法获取字节码 这个方法会去我们的操作系统寻找这个cl…

linux、widnows的免费局域网桌面远程工具之NoMachine

统信UOS、银河麒麟及其他的linux桌面系统/windows系统都可进行远程桌面操作使用。 1.先到官网下载https://downloads.nomachine.com/自己使用的软件版本。 2.首先下载windwos端的的版本64位进行安装&#xff0c;安装是先暂时退出windows的杀毒软件&#xff0c;以免提示你各种确…

RabbitMQ入门指南(三):Java入门示例

专栏导航 RabbitMQ入门指南 从零开始了解大数据 目录 专栏导航 前言 一、AMQP协议 1.AMQP 2.Spring AMQP 二、使用Spring AMQP实现对RabbitMQ的消息收发 1.案例准备阶段 2.入门案例&#xff08;无交换机&#xff09; 3.任务模型案例&#xff08;Work Queues&#xff0…

论文笔记:Accurate Localization using LTE Signaling Data

1 intro 论文提出LTELoc&#xff0c;仅使用信令数据实现精准定位 信令数据已经包含在已在LTE系统中&#xff0c;因此这种方法几乎不需要数据获取成本仅使用TA&#xff08;时序提前&#xff09;和RSRP【这里单位是瓦】&#xff08;参考信号接收功率&#xff09; TA值对应于信号…

5.6 Linux rsync 服务

1、rsync 概念介绍 官方网站&#xff1a;rsync rsync(Remote Sync) 是一个Unix/linux系统下的文件同步和传输工具。Rsync通过“rsync算法”提供了一个客户机和远程服务器的文件同步的快速方法。 采用C/S模式 端口tcp:873 a. rsync 特性 ① 可以镜像保存整个目录树和文件系…