Vue 父组件与子组件之间传值

一、父组件与子组件之间值传递步骤如下:

例如:我有一个父组件Myhome.vue 和一个子组件Header.vue

1、父组件调用子组件的时候,动态绑定属性值

 <v-myheader :title="title"></v-myheader> 

2、在子组件使用 props 来接受父组件传过来数据(props:[‘title‘]),如果是多个就定义多个属性就可以

完整代码如下:

1、Myhome.vue(父组件)代码如下:

<template>
<div id="homeapp">
<h1>这是一个home123</h1>
 <v-myheader :title="title"></v-myheader>
 </div>
</template>

<script>
import MyHeader from ‘./Header.vue‘;
export default {
   name:‘myhome‘,
    data () {
        return {
         title:‘父类数据‘
        }
    }
    ,components :{
        ‘v-myheader‘:MyHeader
    }

}
</script>

2、Header.vue(子组件)代码如下:

<template>
<div id="headerapp">
<h3>这是头部组件(子组件)</h3>
<h2>父类数据--{{title}}</h2>
</div>
</template>

<script>
export default {
    data() {
        return {
          msg:‘mgs‘
        }
    },methods:{

    }
    ,props:[‘title‘]
}

</script>

2、除了传递属性以外还能传递方法和父组件的对象,如果是传递父组件的对象,那么在子组件里就能通过父组件对象获取属性和方法、数据

代码如下:

父类组件代码如下:

<template>
<div id="homeapp">
<h1>这是一个home123</h1>
 <v-myheader :title="title" :show=‘show‘ :home="this"></v-myheader>
 </div>
</template>

<script>
import MyHeader from ‘./Header.vue‘;
export default {
   name:‘myhome‘,
    data () {
        return {
         title:‘父类数据‘
        }
    }
    ,methods:{
        show(a) {
            alert(‘我是父组件方法‘+a);
        }
    }
    ,components :{
        ‘v-myheader‘:MyHeader
    }

}
</script>

其中:

:show=‘show‘->表示传递方法:home="this"->表示传递父类实例对象

子组件代码如下:
<template>
<div id="headerapp">
<h3>这是头部组件(子组件)</h3>
<h2>父类数据--{{title}}</h2>
<button @click="show(123)">调用父类方法</button>
<button @click="getparentdata()">获取父组件数据和方法</button>
</div>
</template>

<script>
export default {
    data() {
        return {
          msg:‘mgs‘
        }
    },methods:{
        getparentdata (){
            alert(this.home.title);
        }

    }
    ,props:[‘title‘,‘show‘,‘home‘]
}

</script>



原文地址:https://www.cnblogs.com/daiyekun-blog/p/10140003.html

时间: 2024-07-29 10:51:16

Vue 父组件与子组件之间传值的相关文章

js父页面和子页面之间传值

今天和朋友一块讨论,怎样通过js在父页面和子页面之间传值的问题,总结例如以下: 需求描写叙述:父页面有多个子页面.实如今父页面点击子页面,传值到子页面. 看着非常easy,试了好久.主要纠结在怎样获取iframe,刚開始用document.getElementById('iframe的ID'),后来查资料才发现这样的方法仅仅是去取出了一个OBJECT,不能操作它的函数方法.后来改成window.iframes["iframe的name"],这样就能够获取子页面的整个DOM,能够操作它的

vue组件之间传值、父组件获取子组件的方法

1.子组件向父组件传值 子组件 <template>     <div class="app">        <input @click="sendMsg" type="button" value="给父组件传递值">     </div> </template> <script> export default {       data () {    

VUe.js 父组件向子组件中传值及方法

父组件向子组件中传值 1.  Vue实例可以看做是大的组件,那么在其内部定义的私有组件与这个实例之间就出现了父子组件的对应关系. 2. 父子组件在默认的情况下,子组件是无妨访问到父组件中的数据的,所以要想在子组件中使用父组件的数据的时候,就需要以属性绑定的形式,将父组件的数据传递到子组件中.     3. 通过属性绑定传递来的数据无法再子组件中直接使用,需要在props中重新定义以后才可以使用.例:props:['变量名'].props是一个数组.    4. 子组件中的data数据都是私有,子

Vue 父组件向子组件传值,传方法,传父组件整体

父子组件传值 1.父组件调用子组件时绑定属性,例如-> :title="title" 2.子组件中在props中声明title:props:['title','msg'] 3.就可以在子组件中引用title Tips:避免父子组件传值时命名冲突 父子组件传方法方式一样 1.父组件调用子组件时绑定属性,例如-> :run="run" 2.子组件中props中声明run:props:['title','msg','run'] 3.子组件中的button引用r

vue父组件向子组件动态传值的两种方法

在一些项目需求中需要父组件向子组件动态传值,比如我这里的需求是,父组件动态通过axios获取返回的图片url数组然后传给子组件,上传图片的子组件拿到该数组后进行遍历并展示图片 方法有两种, 方法一: props传值,这里注意一个问题,传过来的值需要用watch监听并赋值,否则这里获取到的是空数组   父组件: <uploadImg :width="200" :height="200" name="productImage" size=&qu

Vue中,父组件向子组件传值

1:在src/components/child/文件夹下,创建一个名为:child.vue的子组件 2:在父组件中,设置好需要传递的数据 3:在App.vue中引入并注册子组件 4:通过v-bind属性绑定并赋值给子组件 5:子组件通过 props 接收父组件传递过的数据 6:查看 7:总结: 子组件在props中创建一个属性,用以接收父组件传过来的值 父组件中注册子组件 在子组件标签中添加子组件props中创建的属性 把需要传给子组件的值赋给该属性 原文地址:https://www.cnblo

vue中父组件向子组件传值(方法)

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>父组件把方法传递给子组件</title> <script src="./vue2.6.9.js"></script> </head> <body> <div id="app&

vue父组件向子组件传值

上节讲了子组件向父组件传值(传送门),本节记录父组件向子组件传值 一:父组件通过向子组件绑定自定义属性的形式向子组件传递数据 <!-- 父组件 --> <div id="app"> <cpn :cmovies='movies'></cpn> </div> 使用v-bind规定子组件要接收的属性为cmovies,要接收的数据是父元素的movies,此时cmovies作为子组件的数据对象 说明: 1.在父组件上通过v-bind绑定

vue学习之父组件与子组件之间的交互

1.父组件数据传给子组件 父组件中的msgfather定义数据 在之组件中通过设置props来取得希望从父组件中获得的值 通过设置这两个属性就可以从父组件传数据到子组件 2.子组件传数据给父组件(这里只介绍$emit) 触发child-tell-me事件,并传参 "this is child message!" 在父组件会找到child-tell-me方法并执行.