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 相关文章推荐
Javascript学习笔记4 Eval函数
Jan 11 Javascript
JS截取字符串常用方法整理及使用示例
Oct 18 Javascript
脚本合并提升javascript性能示例
Feb 24 Javascript
jQuery对指定元素中指定字符串进行替换的方法
Mar 17 Javascript
JS+CSS实现TreeMenu二级树形菜单完整实例
Sep 18 Javascript
jQuery制作圣诞主题页面 更像是爱情影集
Aug 10 Javascript
AngularJs入门教程之环境搭建+创建应用示例
Nov 01 Javascript
vue-router 导航钩子的具体使用方法
Aug 31 Javascript
Vue中this.$router.push参数获取方法
Feb 27 Javascript
VUE2.0+ElementUI2.0表格el-table实现表头扩展el-tooltip
Nov 30 Javascript
Vue export import 导入导出的多种方式与区别介绍
Feb 12 Javascript
Vue+Element自定义纵向表格表头教程
Oct 26 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
file_get_contents(&quot;php://input&quot;, &quot;r&quot;)实例介绍
2013/07/01 PHP
PHP 图片合成、仿微信群头像的方法示例
2019/10/25 PHP
30个最好的jQuery 灯箱插件分享
2011/04/25 Javascript
客户端js判断文件类型和文件大小即限制上传大小
2013/11/20 Javascript
js面向对象编程之如何实现方法重载
2014/07/02 Javascript
JavaScript函数详解
2014/11/17 Javascript
推荐25个超炫的jQuery网格插件
2014/11/28 Javascript
jQuery解决input超多的表单提交
2015/08/10 Javascript
js实现基于正则表达式的轻量提示插件
2015/08/29 Javascript
JS提示:Uncaught SyntaxError: Unexpected token ILLEGAL错误的解决方法
2016/08/19 Javascript
基于NodeJS+MongoDB+AngularJS+Bootstrap开发书店案例分析
2017/01/12 NodeJs
js遍历json的key和value的实例
2017/01/22 Javascript
js实现文本上下来回滚动
2017/02/03 Javascript
详解angular ui-grid之过滤器设置
2017/06/07 Javascript
vue 里面使用axios 和封装的示例代码
2017/09/01 Javascript
Vue创建头部组件示例代码详解
2018/10/23 Javascript
使用Sonarqube扫描Javascript代码的示例
2018/12/26 Javascript
基于layPage插件实现两种分页方式浅析
2019/07/27 Javascript
PHP读取远程txt文档到数组并实现遍历
2020/08/25 Javascript
理解Python中的With语句
2015/02/02 Python
python format 格式化输出方法
2018/07/16 Python
Python实现的简单线性回归算法实例分析
2018/12/26 Python
python读取几个G的csv文件方法
2019/01/07 Python
Python基础学习之函数方法实例详解
2019/06/18 Python
500行代码使用python写个微信小游戏飞机大战游戏
2019/10/16 Python
信号生成及DFT的python实现方式
2020/02/25 Python
python 已知三条边求三角形的角度案例
2020/04/12 Python
Python面向对象实现方法总结
2020/08/12 Python
python判断变量是否为列表的方法
2020/09/17 Python
CSS3过渡transition效果实例介绍
2016/05/03 HTML / CSS
函数指针的定义是什么
2016/08/14 面试题
Why we need EJB
2016/10/20 面试题
国贸专业个人求职信分享
2013/12/04 职场文书
建筑结构施工专业推荐信
2014/02/21 职场文书
你喜欢篮球吗?Python实现篮球游戏
2021/06/11 Python
tomcat下部署jenkins的方法
2022/05/06 Servers