Vue2.0的三种常用传值方式、父传子、子传父、非父子组件传值

Vue2.0的三种常用传值方式、父传子、子传父、非父子组件传值Vue2.0传值方式:在Vue的框架开发的项目过程中,经常会用到组件来管理不同的功能,有一些公共的组件会被提取出来。这时必然会产生一些疑问和需求?比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行传值呢?如果是电商网站系统的开发,还会涉及到购物车的选项,这时候就会涉及到非父子组件传值的情况。当然你也可以用Vuex状态管理工具来实现,这部分我们后续会单独介绍。先给大家介绍Vue常见的三种传值方式

大家好,又见面了,我是你们的朋友全栈君。

Vue2.0 传值方式:

在Vue的框架开发的项目过程中,经常会用到组件来管理不同的功能,有一些公共的组件会被提取出来。这时必然会产生一些疑问和需求?比如一个组件调用另一个组件作为自己的子组件,那么我们如何进行给子组件进行传值呢?如果是电商网站系统的开发,还会涉及到购物车的选项,这时候就会涉及到非父子组件传值的情况。当然你也可以用Vuex状态管理工具来实现,这部分我们后续会单独介绍。我先给大家介绍Vue开发中常用的三种传值方式。

Vue常用的三种传值方式有:

  • 父传子

  • 子传父

  • 非父子传值


引用官网的一句话:父子组件的关系可以总结为 prop 向下传递,事件向上传递。父组件通过 prop 给子组件下发数据,子组件通过事件给父组件发送消息,如下图所示:

这里写图片描述

接下来,我们通过实例来看可能会更明白一些:

1. 父组件向子组件进行传值

这里写图片描述

父组件:

<template>
  <div>
    父组件:
    <input type="text" v-model="name">
    <br>
    <br>
    <!-- 引入子组件 -->
    <child :inputName="name"></child>
  </div>
</template>
<script> import child from './child' export default { components: { child }, data () { return { name: '' } } } </script>

子组件:

<template> <div> 子组件: <span>{ 
   { 
   inputName}}</span> </div> </template> <script> export default { // 接受父组件的值 props: { inputName: String, required: true } } </script>

2. 子组件向父组件传值

这里写图片描述

子组件:

<template> <div> 子组件: <span>{ 
   { 
   childValue}}</span> <!-- 定义一个子组件传值的方法 --> <input type="button" value="点击触发" @click="childClick"> </div> </template> <script> export default { data () { return { childValue: '我是子组件的数据' } }, methods: { childClick () { // childByValue是在父组件on监听的方法 // 第二个参数this.childValue是需要传的值 this.$emit('childByValue', this.childValue) } } } </script>

父组件:

<template> <div> 父组件: <span>{ 
   { 
   name}}</span> <br> <br> <!-- 引入子组件 定义一个on的方法监听子组件的状态--> <child v-on:childByValue="childByValue"></child> </div> </template> <script> import child from './child' export default { components: { child }, data () { return { name: '' } }, methods: { childByValue: function (childValue) { 
      // childValue就是子组件传过来的值 this.name = childValue } } } </script>

3. 非父子组件进行传值

非父子组件之间传值,需要定义个公共的公共实例文件bus.js,作为中间仓库来传值,不然路由组件之间达不到传值的效果。

公共bus.js

//bus.js
import Vue from 'vue'
export default new Vue()

组件A:

<template> <div> A组件: <span>{ 
   { 
   elementValue}}</span> <input type="button" value="点击触发" @click="elementByValue"> </div> </template> <script> // 引入公共的bug,来做为中间传达的工具 import Bus from './bus.js' export default { data () { return { elementValue: 4 } }, methods: { elementByValue: function () { 
      Bus.$emit('val', this.elementValue) } } } </script>

组件B:

<template> <div> B组件: <input type="button" value="点击触发" @click="getData"> <span>{ 
   { 
   name}}</span> </div> </template> <script> import Bus from './bus.js' export default { data () { return { name: 0 } }, mounted: function () { 
      var vm = this // 用$on事件来接收参数 Bus.$on('val', (data) => { console.log(data) vm.name = data }) }, methods: { getData: function () { 
      this.name++ } } } </script>

☺ Vue三种常用的传值方式就介绍完了,如果有什么不明白的,可以在评论区留言哦!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/145233.html原文链接:https://javaforall.net

(0)
上一篇 2022年5月13日 上午7:40
下一篇 2022年5月13日 上午7:40


相关推荐

  • 热传导方程的差分格式原理与matlab实现

    热传导方程的差分格式原理与matlab实现本博客介绍抛物型方程中一种最基本形式 热传导方程的差分格式 分别介绍了热传导方程的古典显格式 古典隐格式 Crank Nicolson 格式及其数值求解方法以及 matlab 代码

    2026年3月26日
    2
  • linux命令行怎么结束进程,linux结束进程命令「建议收藏」

    linux命令行怎么结束进程,linux结束进程命令「建议收藏」linux下进程的开启与结束都可以通过命令来控制,下面由学习啦小编为大家整理了linux下结束进程命令的相关知识,希望对大家有所帮助。linux结束进程命令1.killkill[信号代码]根据PID向进程发送信号,常用来结束进程,默认信号为-9信号代码,可取值如下:-l[信号数字]显示、翻译信号代码-9,-KILL发送kill信号退出-6,-ABRT发送abort信号…

    2025年6月22日
    5
  • Oracle建立表空间和用户

    Oracle建立表空间和用户

    2021年12月10日
    39
  • Qt加载百度离线地图

    Qt加载百度离线地图1 下载百度地图离线 API1 3 下载链接 http download csdn net detail caoshangpa 网上虽然出现了 2 0 版本离线 API 但是经试用 存在很多问题 该 1 3 版本离线 API 也是由高人制作 我只是优化了一下 去掉了百度的 logo 2 下载瓦片地图百度地图是由一张张正方形瓦片组成 在拖动地图时 只加载可视范围内的瓦片 如下图所示

    2026年3月20日
    2
  • Python贪吃蛇小游戏_Python贪吃蛇代码

    Python贪吃蛇小游戏_Python贪吃蛇代码Python命令行小游戏—贪吃蛇前言一、贪吃蛇游戏初始界面及地图1.游戏初始界面2.游戏地图二、命令符的设置、输出刷新和按键检测1.库支持2.c语言代码3.Python代码(变量初始化及游戏初始化)三、蛇的移动四、蛇的方向控制五、食物的设置六、游戏结束总结前言为了初步学习Python更有兴趣,决定做个学编程大多都会做的小游戏—贪吃蛇,因为是刚刚开始学习,不足之处,希望大家多多指正。一、贪吃蛇游戏初始界面及地图1.游戏初始界面defmune():os.system(“color0a

    2025年9月14日
    9
  • java 遍历arrayList的四种方法及其效率对比

    java 遍历arrayList的四种方法及其效率对比java遍历arrayList的四种方法packagecom.test;importjava.util.ArrayList;importjava.util.Iterator;importjava.util.List;publicclassArrayListDemo{   publicstaticvoidmain(Str

    2022年7月22日
    13

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号