1.传值

a.父组件传子组件

方法一:

父页面:

<myReportContent v-if="contentState==1"  :paramsProps='paramsProps'   @back="back" :reportId="reportId" :reportTypex="reportTypex"></myReportContent>
  
import myReportContent from './myReportContent.vue'
 
components: {
  myReportContent
}

子页面:

    props: {
reportTypex: {
type: String
},
reportId: {
type: String
},
paramsProps:{
type:Object,
default:{}
}
},

 方法二:

父组件

  provide:{
nameGet: 'ab888'
},

子组件

  inject:['nameGet'],
data () {
return {
msg: 'componentA',
amount: 1,
name: this.nameGet
}
},

  b.子组件传父组件

方法一:(也是子组件调用父组件方法的案例)

父组件

<componentb @backParent='backParent'></componentb>

import componentb from 'components/componentB'

components: {
componentb
} backParent(amount){
console.log('获取子组件传过来的数量:' + amount)
}  

子组件

    changeDataMsg(){
this.$emit('backParent',this.amount)
// this.$router.push({path:'/'})
}

c.兄弟组件之间传值

方法一(a改变,b也跟着改变-----------------a传值给b):

创建一个独立的eventVue.js

import Vue from 'vue'
export default new Vue

父组件

    <componenta></componenta>
<componentb></componentb>   import componenta from 'components/componentA'
  import componentb from 'components/componentB' components: {
componenta,
componentb
},

兄弟组件a

<h1>{{ amount }}</h1>
import eventVue  from '@/until/eventVue.js'

  data () {
return {
msg: 'componentA',
amount: 1
}
} changeDataMsg(){
let amount = this.amount + 1
eventVue.$emit('myfun',amount)
this.amount = amount
}

兄弟组件b

<h1>{{ amount }}</h1>
import eventVue from '@/until/eventVue.js' changeDataMsg(){
eventVue.$on('myfun',(msg)=>{
this.amount = msg
})
}
  created(){
     this.changeDataMsg()
  }

 方法二(b改变,a也跟着改变-----------------b传值给a):

父组件

<componenta ref="childa"></componenta>
<componentb @backParent='backParent' ></componentb> backParent(number){
this.$refs.childa.changeDataNumber(number)
},

兄弟组件b

    <button @click="backp">backp</button>
<h1>{{ number }}</h1> data () {
return {
number: 2.1
}
}, backp(){
let number = this.number + 1
this.$emit('backParent',number)
this.number = number
},

兄弟组件a

    <h1>{{ number }}</h1>
data () {
return {
number: 9.1,
}
},
changeDataNumber(number){
this.number = number
}

d.父组件的父组件给孙组件传值(爷爷------>孙子) 

2.方法调用

a.父组件调用子组件方法

方法一:

    <h1>{{nameG}}<button @click="parentF">父组件按钮</button></h1>
<componenta ref="childa"></componenta> parentF(){
this.$refs.childa.changeDataMsg()
}  

子组件

    changeDataMsg(){
console.log('父组件调用子组件方法:ref')
}

方法二:

b.子组件调用父组件方法

方法一:见1中b的方法一

方法二:

父组件

parentFun(){
console.log('子组件调用父组件方法:$parent')
}

子组件

changeDataMsg(){
this.$parent.parentFun()
}

方法三:

父组件

    <componentb @backParent='backParent' :parentFuntion="parentFuntion"></componentb>
parentFuntion(){
console.log('子组件调用父组件方法:props')
}

子组件

    changeDataMsg(){
this.parentFuntion()
}

vue组件间的传值方式及方法调用汇总的更多相关文章

  1. vue组件间通信六种方式(完整版)

    本文总结了vue组件间通信的几种方式,如props. $emit/ $on.vuex. $parent / $children. $attrs/ $listeners和provide/inject,以 ...

  2. vue程序中组件间的传值方式

    vue程序在组件中进行传值有多种方式,这里记录我在项目中使用到的三种: 1. 父组件向子组件传值 2. 子组件向父组件传值 3. 通过路由传参 父组件通过props向子组件传值 在子组件script中 ...

  3. vue组件之间的传值方式

    一.父组件向子组件传值方式 1.1父组件向子组件传数据方式 <!DOCTYPE html> <html lang="en"> <head> &l ...

  4. Vue 组件间的传值(通讯)

    组件之间的通讯分为三种 父给子传 子给父传 兄弟组件之间的通讯 1 父组件给子组件传值 子组件嵌套在父组件内部,父组件给子组件传递一个标识,在子组件内部用props接收,子组件在模板里可以通过{{}} ...

  5. [Props] vue组件间的传值及校验

    基本用法 Prop的基本用法很简单,只需要在子组件的Vue实例中定义该属性并把值设为目标属性的数组即可 Vue.component('child', { ... // 接收message props: ...

  6. vue-learning:31 - component - 组件间通信的6种方法

    vue组件间通信的6种方法 父子组件通信 prop / $emit 嵌套组件 $attrs / $liteners 后代组件通信 provide / inject 组件实例引用 $root / $pa ...

  7. vue组件定义方式,vue父子组件间的传值

    vue组件定义方式,vue父子组件间的传值 <!DOCTYPE html> <html lang="zh-cn"> <head> <met ...

  8. Vue组件间通信6种方式

    摘要: 总有一款合适的通信方式. 作者:浪里行舟 Fundebug经授权转载,版权归原作者所有. 前言 组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的 ...

  9. Vue中组件间通信的方式

    Vue中组件间通信的方式 Vue中组件间通信包括父子组件.兄弟组件.隔代组件之间通信. props $emit 这种组件通信的方式是我们运用的非常多的一种,props以单向数据流的形式可以很好的完成父 ...

随机推荐

  1. request请求模拟导出文件

    ui界面: 实现代码: def export(self,host): '''导出课时券记录''' #测试接口 url='https://'+host+r'/ticket-record/export?t ...

  2. python命令行参数解析OptionParser类用法实例

    python命令行参数解析OptionParser类用法实例 本文实例讲述了python命令行参数解析OptionParser类的用法,分享给大家供大家参考. 具体代码如下:     from opt ...

  3. 将Python的Django框架与认证系统整合的方法

    将Python的Django框架与认证系统整合的方法 这篇文章主要介绍了将Python的Django框架与认证系统整合的方法,包括指定认证后台和编写认证后台等内容,需要的朋友可以参考下 将Django ...

  4. 微信小程序--TabBar不出现

    今天打算开始实战一个微信小程序项目,一开始就踩坑了,正确设置了TabBar,但是TabBar就是不能显示出来,后面才找到原因,这里记录下: app.json正确代码: { "pages&qu ...

  5. iOS-CGAffineTransform相关函数

    CGAffineTransform相关函数 CGAffineTransformMakeTranslation(width, 0.0);是改变位置的,CGAffineTransformRotate(tr ...

  6. react做的简单的选项卡

    ### 首先安装react的脚手架 cnpm    install   create-react-app   -g    只需要在电脑下载安装一次即可  ###创建项目 create-react-ap ...

  7. java、ruby、python、php等如何生成excel文档?

    excel在我们日常工作生活中会经常用到,通常我们都是用office软件去编写文档.但是对于格式一致的excel文档,如果还是使用人工完成,那绝不是我们软件工程师的姿态了~ 下面我就介绍一种方法,不需 ...

  8. 【ARM-Linux开发】使用QT和Gstreanmer 遇到的一些问题

    1.如果出现错误,可能是在安装UCT PCRF时,相关组件不全,略举两个碰到的错误. 1)curl/curl.h:No such file or directory --可能原因是libcurl及相关 ...

  9. JWT(JSON Web Tokens)操作帮助类

    载荷实体: /// <summary> /// JWT载荷实体 /// </summary> public sealed class JWTPlayloadInfo { /// ...

  10. poj1873(二进制枚举+求凸包周长)

    题目链接:https://vjudge.net/problem/POJ-1873 题意:n个点(2<=n<=15),给出n个点的坐标(x,y).价值v.做篱笆时的长度l,求选择哪些点来做篱 ...