Vue三种常用传值示例(父传子、子传父、非父子)


Posted in Javascript onJuly 24, 2018

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>

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于Jquery的回车成tab焦点切换效果代码(Enter To Tab )
Nov 14 Javascript
IE中图片的onload事件无效问题和解决方法
Jun 06 Javascript
jQuery固定元素插件scrolltofixed使用指南
Apr 21 Javascript
深入理解JavaScript中的箭头函数
Jul 28 Javascript
javascript弹出窗口中增加确定取消按钮
Jun 24 Javascript
深入浅析JavaScript中的3DES
Aug 24 Javascript
利用jQuery插件imgAreaSelect实现获得选择域的图像信息
Dec 02 Javascript
Angular 4依赖注入学习教程之Injectable装饰器(六)
Jun 04 Javascript
vue.js开发实现全局调用的MessageBox组件实例代码
Nov 22 Javascript
详解Angular5/Angular6项目如何添加热更新(HMR)功能
Oct 10 Javascript
layui清除radio的选中状态实例
Nov 14 Javascript
鸿蒙系统中的 JS 开发框架
Sep 18 Javascript
微信小程序实现横向增长表格的方法
Jul 24 #Javascript
vue中使用sessionStorage记住密码功能
Jul 24 #Javascript
Vue-router 中hash模式和history模式的区别
Jul 24 #Javascript
详解Vue的钩子函数(路由导航守卫、keep-alive、生命周期钩子)
Jul 24 #Javascript
JS获取浏览器地址栏的多个参数值的任意值实例代码
Jul 24 #Javascript
JS实现全屏预览F11功能的示例代码
Jul 23 #Javascript
AngularJS ui-router刷新子页面路由的方法
Jul 23 #Javascript
You might like
《超神学院》霸气归来, 天使彦上演维多利亚的秘密
2020/03/02 国漫
用Php编写注册后Email激活验证的实例代码
2013/03/11 PHP
php简单分页类实现方法
2015/02/26 PHP
PHP中使用substr()截取字符串出现中文乱码问题该怎么办
2015/10/21 PHP
Symfony2框架创建项目与模板设置实例详解
2016/03/17 PHP
thinkphp3.2中实现phpexcel导出带生成图片示例
2017/02/14 PHP
PHP4和PHP5版本下解析XML文档的操作方法实例分析
2017/05/20 PHP
PHP后期静态绑定之self::限制实例分析
2018/12/21 PHP
PHP7新功能总结
2019/04/14 PHP
如何实现修改密码时密码框显示保存到cookie的密码
2013/12/10 Javascript
JS脚本defer的作用示例介绍
2014/01/02 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
Bootstrap每天必学之表单
2015/11/23 Javascript
JavaScript面向对象编写购物车功能
2016/08/19 Javascript
详解Vue使用命令行搭建单页面应用
2017/05/24 Javascript
理解 JavaScript EventEmitter
2018/03/29 Javascript
vue项目打包部署_nginx代理访问方法详解
2018/09/20 Javascript
详解Nuxt.js中使用Element-UI填坑
2019/09/06 Javascript
npm ci命令的基本使用方法
2020/09/20 Javascript
实例说明Python中比较运算符的使用
2015/05/13 Python
浅谈python 读excel数值为浮点型的问题
2018/12/25 Python
Python3多线程基础知识点
2019/02/19 Python
opencv3/C++实现视频读取、视频写入
2019/12/11 Python
TensorFlow实现打印每一层的输出
2020/01/21 Python
python 伯努利分布详解
2020/02/25 Python
keras分类之二分类实例(Cat and dog)
2020/07/09 Python
解决Firefox下不支持outerHTML问题代码分享
2014/06/04 HTML / CSS
怀旧收藏品和经典纪念品:Betty’s Attic
2018/08/29 全球购物
学校三八妇女节活动情况总结
2014/03/09 职场文书
入股协议书范本
2014/04/14 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
办理房产过户的委托书
2014/09/14 职场文书
2014年保洁员工作总结
2014/11/19 职场文书
无违反计划生育证明格式
2015/06/24 职场文书
一篇文章告诉你如何实现Vue前端分页和后端分页
2022/02/18 Vue.js
关于Mybatis中SQL节点的深入解析
2022/03/19 Java/Android