Vue中父子组件的值传递与方法传递


Posted in Javascript onSeptember 28, 2020

一.Vue中父组件向子组件传值

利用v-bind向子组件传值,子组件中利用props接受

<div id="app">
  <father></father>
</div>
<template id="father">
  <div>
    <!--注意点: 组件是可以使用自己的数据的-->
    <p>{{name}}</p>
    <p>{{age}}</p>
    <!--这里将父组件的name通过parentname传递给了子组件-->
    <son :parentname="name" :abc="age"></son>
  </div>
</template>
<template id="son">
  <div>
    <!--这里通过parentname使用了父组件传递过来的数据-->
    <p>{{parentname}}</p>
    <p>{{abc}}</p>
  </div>
</template>
<script>
  // 父组件
  Vue.component("father", {
    template: "#father",
    data: function(){
     return {
       name: "wqd",
       age: 21
     }
    },
    // 子组件
    components: {
      "son": {
        template: "#son",
        //这里通过parentname接收了父组件传递过来的数据
        props: ["parentname", "abc"]
      }
    }
  });
  // 这里就是MVVM中的View Model
  let vue = new Vue({
    el: '#app',
    // 这里就是MVVM中的Model
    data: {
    },
  });
</script>

二.Vue中父组件向子组件传递方法

父组件利用v-on传值,子组件this.$emit来接收

<div id="app">
  <father></father>
</div>
<template id="father">
  <div>
    <button @click="say">我是按钮</button>
    <!--这里通过parentsay将父组件的say方法传递给了子组件-->
    <son @parentsay="say"></son>
  </div>
</template>
<template id="son">
  <div>
    <button @click="sonFn">我是按钮</button>
  </div>
</template>
<script>
  // 父组件
  Vue.component("father", {
    template: "#father",
    methods: {
      say(){
        console.log("helloworld")
      }
    },
    // 子组件
    components: {
      "son": {
        template: "#son",
        /*
        注意点: 和传递数据不同, 如果传递的是方法, 那么在子组件中不需要接收,需要在子组件自定义的方法中通this.$emit("自定义接收的名称")的方法来触发父组件传递过来的方法
        */
        // props: ["parentsay"]
        methods: {
          sonFn(){
            this.$emit("parentsay");
          }
        }
      }
    }
  });
  // 这里就是MVVM中的View Model
  let vue = new Vue({
    el: '#app',
    // 这里就是MVVM中的Model
    data: {
    },
  });
</script>

三.Vue中子组件向父组件传值

this.$emit中第一个参数为接收父组件传递的方法,第二个参数即为向父组件传递的值

<div id="app">
  <father></father>
</div>
<template id="father">
  <div>
    <button @click="say">我是按钮</button>
    <!--这里通过parentsay将父组件的say方法传递给了子组件-->
    <son @parentsay="say"></son>
  </div>
</template>
<template id="son">
  <div>
    <button @click="sonFn">我是按钮</button>
  </div>
</template>
<script>
  // 父组件
  Vue.component("father", {
    template: "#father",
    methods: {
      //data用来接受子组件传递的值
      say(data){
        console.log(data);
      }
    },
    // 子组件
    components: {
      "son": {
        template: "#son",
        methods: {
          sonFn(){
            // 第一个参数: 需要调用的函数名称
            // 后续的参数: 给调用的函数传递的参数
            this.$emit("parentsay", "你好");
          }
        }
      }
    }
  });
  // 这里就是MVVM中的View Model
  let vue = new Vue({
    el: '#app',
    // 这里就是MVVM中的Model
    data: {
    },
    
  });
</script>

到此这篇关于Vue中父子组件的值传递与方法传递的文章就介绍到这了,更多相关Vue父子组件传递内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
javascript中的对象和数组的应用技巧
Jan 07 Javascript
javascript 面向对象思想 附源码
Jul 07 Javascript
IE关闭时判断及AJAX注销案例学习
Feb 18 Javascript
jQuery多项选项卡的实现思路附样式及代码
Jun 03 Javascript
Bootstrap基本插件学习笔记之Popover提示框(19)
Dec 08 Javascript
React styled-components设置组件属性的方法
Aug 07 Javascript
vue实现固定位置显示功能
May 30 Javascript
Vue项目实现换肤功能的一种方案分析
Aug 28 Javascript
微信小程序实现watch监听
Jun 04 Javascript
深度解读vue-resize的具体用法
Jul 08 Javascript
如何在Vue中使localStorage具有响应式(思想实验)
Jul 14 Javascript
Javascript前端下载后台传来的文件流代码实例
Aug 18 Javascript
JSONObject与JSONArray使用方法解析
Sep 28 #Javascript
OpenLayer3自定义测量控件MeasureTool
Sep 28 #Javascript
Openlayers实现距离面积测量
Sep 28 #Javascript
Openlayers+EasyUI Tree动态实现图层控制
Sep 28 #Javascript
JS sort排序详细使用方法示例解析
Sep 27 #Javascript
vue中实现点击变成全屏的多种方法
Sep 27 #Javascript
通过实例解析json与jsonp原理及使用方法
Sep 27 #Javascript
You might like
PHP基于工厂模式实现的计算器实例
2015/07/16 PHP
PHP面向对象类型约束用法分析
2019/06/12 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
javascript 装载iframe子页面,自适应高度
2009/03/20 Javascript
JavaScript window.setTimeout() 的详细用法
2009/11/04 Javascript
jquery ajax abort()的使用方法
2010/10/28 Javascript
Js,alert出现乱码问题的解决方法
2013/06/19 Javascript
IE下JS读取xml文件示例代码
2013/08/05 Javascript
js css后面所带参数含义介绍
2013/08/18 Javascript
javascript中cookie对象用法实例分析
2015/01/30 Javascript
JS实现的鼠标跟随代码(卡通手型点击效果)
2015/10/26 Javascript
微信小程序 页面跳转传参详解
2016/10/28 Javascript
详解Node.js中exports和module.exports的区别
2017/04/19 Javascript
javascript+css3开发打气球小游戏完整代码
2017/11/28 Javascript
vue router动态路由设置参数可选问题
2019/08/21 Javascript
ES11屡试不爽的新特性,你用上了几个
2020/10/21 Javascript
[02:32]【DOTA2亚洲邀请赛】iceice,梦开始的地方
2017/03/13 DOTA
用Python的Tornado框架结合memcached页面改善博客性能
2015/04/24 Python
Python实现读写sqlite3数据库并将统计数据写入Excel的方法示例
2017/08/07 Python
简单实现python收发邮件功能
2018/01/05 Python
python 巧用正则寻找字符串中的特定字符的位置方法
2018/05/02 Python
python:print格式化输出到文件的实例
2018/05/14 Python
python smtplib发送带附件邮件小程序
2018/05/22 Python
python中join()方法介绍
2018/10/11 Python
Python基于机器学习方法实现的电影推荐系统实例详解
2019/06/25 Python
python实现银行管理系统
2019/10/25 Python
Django admin 实现search_fields精确查询实例
2020/03/30 Python
Python request post上传文件常见要点
2020/11/20 Python
联想印度官方网上商店:Lenovo India
2019/08/24 全球购物
工商管理毕业生推荐信
2013/12/24 职场文书
财务会计毕业生个人求职信
2014/02/03 职场文书
全国文明单位申报材料
2014/05/31 职场文书
党员教师学习党的群众路线教育实践活动心得体会
2014/10/31 职场文书
2015年班组建设工作总结
2015/05/13 职场文书
java设计模式--原型模式详解
2021/07/21 Java/Android
java.util.NoSuchElementException原因及两种解决方法
2022/06/28 Java/Android