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">
<!-- 父组件向子组件传递方法,使用的是事件绑定机制 v-on 当我们自定义了一个事件属性之后,那么子组件就能够通过某些方式来调用传递进去的这个方法了-->
    <com2 @func="show"></com2>
</div>

<template id="templ">
    <div>
        <h1>这是子组件</h1>
        <input  type="button" value="这是子组件中的按钮,点击它,触发传递过来的func方法" @click="myclick"/>
    </div>
</template>
</body>
<script>
    //定义了一个字面量类型的组件模板对象
    var com2 = {
        template: ‘#templ‘,//通过指定一个Id,表示说要去加载这个指定id的template元素中的内容,当做组件的HTML结构
       data(){
            return {
                sonmsg:{
                    name:‘张三‘,
                    age:18
                }
            }
       },
        methods: {
            myclick (){
                //emit ‘调用,触发,发射‘
                 this.$emit("func",this.sonmsg)

            }
        }
    }

    var vm = new Vue({
        el:‘#app‘,
        data:{
           datamsgFromSon : null,
        },
        methods:{
            show(data){
                console.log("调用了父组件身上的show方法-----"+data)
                this.datamsgFromSon = data;
                console.log(data)
            }
        },
        components :{
            com2
        }
    })
</script>
</html>

效果图

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>父组件把方法传递给子组件</title>    <script src="./vue2.6.9.js"></script></head><body><div id="app"><!-- 父组件向子组件传递方法,使用的是事件绑定机制 v-on 当我们自定义了一个事件属性之后,那么子组件就能够通过某些方式来调用传递进去的这个方法了--><com2 @func="show"></com2></div>

<template id="templ">    <div>        <h1>这是子组件</h1>        <input  type="button" value="这是子组件中的按钮,点击它,触发传递过来的func方法" @click="myclick"/>    </div></template></body><script>//定义了一个字面量类型的组件模板对象var com2 = {        template: ‘#templ‘,//通过指定一个Id,表示说要去加载这个指定id的template元素中的内容,当做组件的HTML结构data(){            return {                sonmsg:{                    name:‘张三‘,age:18}            }       },methods: {            myclick (){                //emit ‘调用,触发,发射‘this.$emit("func",this.sonmsg)

            }        }    }

    var vm = new Vue({        el:‘#app‘,data:{           datamsgFromSon : null,},methods:{            show(data){                console.log("调用了父组件身上的show方法-----"+data)                this.datamsgFromSon = data;console.log(data)            }        },components :{            com2}    })</script></html>

原文地址:https://www.cnblogs.com/malong1992/p/12045499.html

时间: 2024-10-07 05:47:10

vue中父组件向子组件传值(方法)的相关文章

Vue中利用$emit实现子组件向父组件通信

Vue中利用$emit实现子组件向父组件通信 父组件 <template> <div> <p>我是父组件</p> <child :isShow="show" @hidechild="hidechild"></child> <button @click="show=true">显示子组件</button> </div> </templa

layer.open中父页面向子页面传值

1.咱先看图说话 父list.jsp 子operate.jsp实现的代码1 在父页面上完成对子页面的数据渲染 function setData(data) { var lay=layer.open({ type: 2, title: false, //closeBtn: 0, //shade:0,//是否有遮罩效果 area: ['560px', '294px'],//宽,高 //skin: 'layui-layer-nobg', //没有背景色 shadeClose: false, conte

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

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

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

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

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中父组件如何监听子组件值的变化

vue中我们会遇到很多父子组件通信的需求, 下面简单列一下,父子组件通信的几种情况 1:父组件向子组件传值:使用prop向子组件传值: 2:子组件实时监听父组件传来的值的变化:使用watch去监听父组件传来的值: 3:父组件可以通过this.$refs.name.去访问子组件的值或方法: 4:子组件可以通过this.$parent.去访问父组件的值或方法: 总结了一下,感觉好像挺全面的,好像不缺啥了.... 但是仔细一想,父组件如何去监听子组件的值呢?如何根据子组件中的某个值的变化,父组件作出响

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

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

Vue的父子组件v-model双向绑定,父组件修改子组件中绑定的v-model属性

先来看下实现的效果,父组件中有个文本框,在点击下面按钮时弹出抽屉,抽屉里也有个文本框,文本框里的初始值要和父组件的文本框同步,并且修改抽屉里的文本框值时 父组件里的文本框值也要跟着改变 网上有大概三种方法 父组件调用子组件传值,子组件通过props接收父组件传来的值,并通过emit发送方法名和值,父组件根据传来的方法名定义方法接收值并进行赋值操作. Sync  这个没试过不了解 v-model  子传父: 父组件定义v-model,子组件中当数据更新时,向父组件emit一个input事件,将更新

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

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