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 相关文章推荐
经典的带阴影的可拖动的浮动层
Jun 26 Javascript
Jquery EasyUI的添加,修改,删除,查询等基本操作介绍
Oct 11 Javascript
FireBug 调试JS入门教程 如何调试JS
Dec 23 Javascript
JS实现获取键盘按下的按键并显示在页面上的方法
Nov 04 Javascript
jquery trigger函数执行两次的解决方法
Feb 29 Javascript
ReactNative页面跳转实例代码
Sep 27 Javascript
基于vue的fullpage.js单页滚动插件
Mar 20 Javascript
vue.js学习之vue-cli定制脚手架详解
Jul 02 Javascript
ES6使用Set数据结构实现数组的交集、并集、差集功能示例
Oct 31 Javascript
Vue2 模板template的四种写法总结
Feb 23 Javascript
js 函数性能比较方法
Aug 24 Javascript
Bootstrap告警框(alert)实现弹出效果和短暂显示后上浮消失的示例代码
Aug 27 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
全国FM电台频率大全 - 5 内蒙古自治区
2020/03/11 无线电
php获取Google机器人访问足迹的方法
2015/04/15 PHP
关于ThinkPhp 框架表单验证及ajax验证问题
2017/07/19 PHP
完整显示当前日期和时间的JS代码
2007/09/17 Javascript
JavaScript 和 Java 的区别浅析
2013/07/31 Javascript
js获取下拉列表的值和元素个数示例
2014/05/07 Javascript
使用jQuery将多条数据插入模态框的实现代码
2014/10/08 Javascript
深入理解JavaScript系列(47):对象创建模式(上篇)
2015/03/04 Javascript
JavaScript动态改变表格单元格内容的方法
2015/03/30 Javascript
Javascript中判断对象是否为空
2015/06/10 Javascript
浅析jQuery移动开发中内联按钮和分组按钮的编写
2015/12/04 Javascript
深入探究AngularJS框架中Scope对象的超级教程
2016/01/04 Javascript
Bootstrap每天必学之导航组件
2016/04/25 Javascript
Bootstrap按钮组件详解
2016/04/26 Javascript
JavaScript数据结构之二叉树的计数算法示例
2017/04/13 Javascript
微信小程序开发入门基础教程
2017/04/19 Javascript
jQuery实现QQ空间汉字转拼音功能示例
2017/07/10 jQuery
javscript 数组扁平化的实现
2020/02/03 Javascript
Vue过渡效果之CSS过渡详解(结合transition,animation,animate.css)
2020/02/05 Javascript
jQuery实现计算器功能
2020/10/19 jQuery
tornado捕获和处理404错误的方法
2014/02/26 Python
Python的Flask框架中web表单的教程
2015/04/20 Python
Python对文件操作知识汇总
2016/05/15 Python
python WindowsError的错误代码详解
2017/07/23 Python
解决nohup重定向python输出到文件不成功的问题
2018/05/11 Python
Python RabbitMQ消息队列实现rpc
2018/05/30 Python
pip install python 快速安装模块的教程图解
2019/10/08 Python
python sorted方法和列表使用解析
2019/11/18 Python
Python StringIO如何在内存中读写str
2020/01/07 Python
Python实现一个简单的递归下降分析器
2020/08/01 Python
英国体育器材进口商店:UK Sport Imports
2017/03/14 全球购物
Timberland法国官网:购买靴子、鞋子、衣服、夹克和配饰
2019/11/30 全球购物
当文件系统受到破坏时,如何检查和修复系统?
2012/03/09 面试题
质检员岗位职责
2015/02/03 职场文书
2015年医院保卫科工作总结
2015/07/23 职场文书
ipad隐藏软件app图标方法
2022/04/19 数码科技