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 打造动态渐变按钮 详细图文教程
Apr 25 Javascript
jquery $.getJSON()跨域请求
Dec 21 Javascript
JavaScript获取页面中超链接数量的方法
Nov 09 Javascript
JS实现随页面滚动显示/隐藏窗口固定位置元素
Feb 26 Javascript
JavaScript事件详细讲解
Jun 27 Javascript
Bootstrap与Angularjs的模态框实例代码
Aug 03 Javascript
利用vue.js实现被选中状态的改变方法
Feb 08 Javascript
vue移动端项目缓存问题实践记录
Oct 29 Javascript
在NPM发布自己造的轮子的方法步骤
Mar 09 Javascript
小谈angular ng deploy的实现
Apr 07 Javascript
js 将多个对象合并成一个对象 assign方法的实现
Sep 24 Javascript
JS中锚点链接点击平滑滚动并自由调整到顶部位置
Feb 06 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
ThinkPHP字符串函数及常用函数汇总
2014/07/18 PHP
WordPress主题制作之模板文件的引入方法
2015/12/28 PHP
ThinkPHP模板标签eq if 中区分0,null,false的方法
2017/03/24 PHP
PHP实现的文件浏览器功能简单示例
2019/09/12 PHP
JavaScript 高级语法介绍
2009/06/15 Javascript
javascript 延迟加载技术(lazyload)简单实现
2011/01/17 Javascript
js中 关于undefined和null的区别介绍
2013/04/16 Javascript
jquery实现控制表格行高亮实例
2013/06/05 Javascript
JQuery中$.ajax()方法参数详解及应用
2013/12/12 Javascript
javascript数组随机排序实例分析
2015/07/22 Javascript
jquery实现下拉框功能效果【实例代码】
2016/05/06 Javascript
用纯Node.JS弹出Windows系统消息提示框实例(MessageBox)
2017/05/17 Javascript
Express使用html模板的详细代码
2017/09/18 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
2017/11/03 Javascript
jQuery+vue.js实现的多选下拉列表功能示例
2019/01/15 jQuery
JQuery基于FormData异步提交数据文件
2020/09/01 jQuery
Vue仿Bibibili首页的问题
2021/01/21 Vue.js
[01:33:30]DOTA2-DPC中国联赛 正赛 RNG vs Phoenix BO3 第二场 2月5日
2021/03/11 DOTA
python中set常用操作汇总
2016/06/30 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
详解Django中类视图使用装饰器的方式
2018/08/12 Python
python远程调用rpc模块xmlrpclib的方法
2019/01/11 Python
python爬虫实现中英翻译词典
2019/06/25 Python
python调用pyaudio使用麦克风录制wav声音文件的教程
2019/06/26 Python
关于Python形参打包与解包小技巧分享
2019/08/24 Python
python实现吃苹果小游戏
2020/03/21 Python
美国购买和销售礼品卡平台:Raise
2017/01/13 全球购物
Clarins娇韵诗英国官网:来自法国的天然护肤品牌
2017/04/18 全球购物
澳大利亚办公室装修:JasonL Office Furniture
2019/06/25 全球购物
意大利和国际奢侈品牌购物网站:Suitnegozi.com
2021/01/15 全球购物
岗位职责的定义
2013/11/10 职场文书
2014年高中教师工作总结
2014/12/19 职场文书
父亲婚礼答谢词
2015/01/04 职场文书
学校德育工作总结2015
2015/05/11 职场文书
烈士陵园观后感
2015/06/08 职场文书
关于拾金不昧的感谢信(五篇)
2019/10/18 职场文书