vue组件间的传值方式及方法调用汇总
1.传值
a.父组件传子组件
方法一:
父页面:
<myReportContent v-if="contentState==1" :paramsProps='paramsProps' @back="back" :reportId="reportId" :reportTypex="reportTypex"></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
})
}
方法二(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组件间的传值方式及方法调用汇总的更多相关文章
- vue组件间通信六种方式(完整版)
本文总结了vue组件间通信的几种方式,如props. $emit/ $on.vuex. $parent / $children. $attrs/ $listeners和provide/inject,以 ...
- vue程序中组件间的传值方式
vue程序在组件中进行传值有多种方式,这里记录我在项目中使用到的三种: 1. 父组件向子组件传值 2. 子组件向父组件传值 3. 通过路由传参 父组件通过props向子组件传值 在子组件script中 ...
- vue组件之间的传值方式
一.父组件向子组件传值方式 1.1父组件向子组件传数据方式 <!DOCTYPE html> <html lang="en"> <head> &l ...
- Vue 组件间的传值(通讯)
组件之间的通讯分为三种 父给子传 子给父传 兄弟组件之间的通讯 1 父组件给子组件传值 子组件嵌套在父组件内部,父组件给子组件传递一个标识,在子组件内部用props接收,子组件在模板里可以通过{{}} ...
- [Props] vue组件间的传值及校验
基本用法 Prop的基本用法很简单,只需要在子组件的Vue实例中定义该属性并把值设为目标属性的数组即可 Vue.component('child', { ... // 接收message props: ...
- vue-learning:31 - component - 组件间通信的6种方法
vue组件间通信的6种方法 父子组件通信 prop / $emit 嵌套组件 $attrs / $liteners 后代组件通信 provide / inject 组件实例引用 $root / $pa ...
- vue组件定义方式,vue父子组件间的传值
vue组件定义方式,vue父子组件间的传值 <!DOCTYPE html> <html lang="zh-cn"> <head> <met ...
- Vue组件间通信6种方式
摘要: 总有一款合适的通信方式. 作者:浪里行舟 Fundebug经授权转载,版权归原作者所有. 前言 组件是 vue.js 最强大的功能之一,而组件实例的作用域是相互独立的,这就意味着不同组件之间的 ...
- Vue中组件间通信的方式
Vue中组件间通信的方式 Vue中组件间通信包括父子组件.兄弟组件.隔代组件之间通信. props $emit 这种组件通信的方式是我们运用的非常多的一种,props以单向数据流的形式可以很好的完成父 ...
随机推荐
- iOS 判断scrollView是否滑动到底部
判断scrollView有没有滚动到视图的底部,用来判断下拉刷新的时间.等 - (void)scrollViewDidScroll:(UIScrollView *)scrollView1 { CG ...
- ElasticSearch——索引生命周期管理
从ES6.6开始,Elasticsearch提供索引生命周期管理功能,索引生命周期管理可以通过API或者kibana界面配置,详情参考[index-lifecycle-management] 本文仅通 ...
- 移动App书写Test Case时需要考虑的检查点
在测试工作中我们需要不断的总结和储备自己的知识和经验,譬如具备特定属性.环境以及场景,如:PC,手机,智能设备,特定网络环境下. 我们需要关注的功能点,容易出错的位置,这将对我们整个测试过程起至关作用 ...
- Jenkins增加日志查看内容. 如何查看Jenkins插件的日志?
进入Jenkins日志项 添加新的日志记录 把插件的GroupID信息填入 对应的源代码 日志生成代码 执行插件,即可查看插件里的日志输出
- 【笔记】Docker部署Nginx,并修改配置文件
先来一个删除命令:) root@fudonghai:~# rm -rf /usr/docker/nginx/{conf.d,html,log} root@fudonghai:~# rm -r /usr ...
- 【c# 学习笔记】c#中的类
1.什么是类: 在c#中类是一种数据结构,它可以包括数据成员.函数成员(方法.属性.事件.索引器.索引符.实例构造函数.静态构造函数和析构函数.及嵌套类型). 属性是,类中字段和方法的结合体,通过定义 ...
- vue等单页面应用及其优缺点
优点: Vue 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件,核心是一个响应的数据绑定系统.MVVM.数据驱动.组件化.轻量.简洁.高效.快速.模块友好. 缺点: 不支持低版本 ...
- PC电脑端支付宝扫码付款出现编码错误提示原因
给这家公司做各大场景的支付 涉及到微信内置H5支付 其他浏览器唤醒微信客户端支付 PC扫码支付 和支付宝相应的支付,但今天进行PC扫码支付时遇到一些编码问题,流程能走通. 调试错误,请回到请求来源地, ...
- 最新 盛天网络java校招面经 (含整理过的面试题大全)
从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.盛天网络等10家互联网公司的校招Offer,因为某些自身原因最终选择了盛天网络.6.7月主要是做系统复习.项目复盘.Leet ...
- vue中的$attrs属性和inheritAttrs属性
一.vue中,默认情况下,调用组件时,传入一些没有在props中定义的属性,会把这些“非法”属性渲染在组件的根元素上(有一些属性除外),而这些“非法”的属性会记录在$attrs属性上. 二.如何控制不 ...