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 相关文章推荐
一个可以显示阴历的JS代码
Mar 05 Javascript
javascript移出节点removeChild()使用介绍
Apr 03 Javascript
使用jsonp完美解决跨域问题
Nov 27 Javascript
jQuery实现提示密码强度的代码
Jul 15 Javascript
js判断子窗体是否关闭的方法
Aug 11 Javascript
深入浅析JavaScript中对事件的三种监听方式
Sep 29 Javascript
Document.body.scrollTop的值总为零的快速解决办法
Jun 09 Javascript
微信小程序 progress组件详解及实例代码
Oct 25 Javascript
详解可以用在VS Code中的正则表达式小技巧
May 14 Javascript
pm2启动ssr失败的解决方法
Jun 29 Javascript
解决Can't find variable: SockJS vue项目的问题
Sep 22 Javascript
vue3.0自定义指令(drectives)知识点总结
Dec 27 Vue.js
微信小程序实现横向增长表格的方法
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
php获取当前网址url并替换参数或网址的方法
2010/06/06 PHP
Ping服务的php实现方法,让网站快速被收录
2012/02/04 PHP
php禁止直接从浏览器输入地址访问.php文件的方法
2014/11/04 PHP
基于php的CMS中展示文章类实例分析
2015/06/18 PHP
PHP开发Apache服务器配置
2015/07/15 PHP
关于文本框的一些限制控制总结~~
2010/04/15 Javascript
JavaScript 获取当前时间戳的代码
2010/08/05 Javascript
javascript 日期时间 转换的方法
2013/02/21 Javascript
jQuery基础_入门必看知识点
2016/07/04 Javascript
Angular2 路由问题修复详解
2017/03/01 Javascript
微信小程序 图片加载(本地,网路)实例详解
2017/03/10 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
Router解决跨模块下的页面跳转示例
2018/01/11 Javascript
详解如何构建Promise队列实现异步函数顺序执行
2018/10/23 Javascript
elementUI select组件默认选中效果实现的方法
2019/03/25 Javascript
vue 中Virtual Dom被创建的方法
2019/04/15 Javascript
Typescript3.9 常用新特性一览(推荐)
2020/05/14 Javascript
koa中间件核心(koa-compose)源码解读分析
2020/06/15 Javascript
javascript 数组(list)添加/删除的实现
2020/12/17 Javascript
详解JavaScript中分解数字的三种方法
2021/01/05 Javascript
详解Python中的各种函数的使用
2015/05/24 Python
Django自定义过滤器定义与用法示例
2018/03/22 Python
python梯度下降法的简单示例
2018/08/31 Python
Python中的 enum 模块源码详析
2019/01/09 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
Python编程快速上手——强口令检测算法案例分析
2020/02/29 Python
使用pth文件添加Python环境变量方式
2020/05/26 Python
巴西宠物店在线:Geração Pet
2017/05/31 全球购物
Electric官网:美国高级眼镜和配件品牌
2020/06/04 全球购物
建筑公司员工自我鉴定
2014/04/08 职场文书
文科毕业生自荐书范文
2014/04/17 职场文书
银行求职自荐信范文
2015/03/04 职场文书
独生子女证明范本
2015/06/19 职场文书
2016年第29个世界无烟日宣传活动总结
2016/04/06 职场文书
MySQL GRANT用户授权的实现
2021/06/18 MySQL
Python使用socket去实现TCP客户端和TCP服务端
2022/04/12 Python