可以看出数据从后端获取过来,最外层的父组件接收数据,子组件不能直接获取,必须由父组件传递,此时使用props,并且父组件的值更新后,子组件的值也会随之更新,但是反过来通过修改子组件props来影响父组件是不行的。但是子组件可以通过$emit触发父组件的自定义事件来进行传值。

一、props

  props用于父组件向子组件传值,在vue组件基础之创建与使用中使用了一个实例,这里还是如此,假如一个页面包含头部、内容、尾部三个部分,这是三个组件,而它们的父组件是App.vue组件。

现在父组件App.vue将数据传递到Vcontent.vue组件中,有三个步骤:

  • 父组件中从后台获取数据
  • 在父组件中使用的子组件绑定自定义属性
  • 在子组件中验证传递数据的类型
  • 在子组件中渲染数据

1、获取数据

现在假设已经从后台获取到了数据,父组件中已经有数据。

2、绑定自定义属性

在父组件中使用子组件(Vcontent),给子组件绑定自定义属性。

3、在子组件中验证数据类型

向将要传递的子组件中验证传递的数据类型,数据类型有和多种,根据自己写的数据类型填写:


String
Number
Boolean
Array
Object
Date
Function
Symbol

4、渲染数据

此时可以在子组件中使用传递过来的数据了

二、自定义事件

用于子组件向父组件传值,假设现在Vcontent组件中通过页面添加了一条数据,此时就需要

  • 在父组件中自定义事件
  • 在子组件中触发父组件中自定义事件

1、父组件自定义事件

2、触发自定义事件

事件绑定到Vcontent组件上,那么在对应的组件中来进行触发,使用this.$emit方法进行触发

总结:

  • 父组件-----》子组件 传值使用props
  • 子组件-----》父组件 传值使用this.emit

详情参考:https://cn.vuejs.org/v2/guide/components-props.html

vue组件基础之父子传值的更多相关文章

  1. Vue组件中的父子传值

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  2. Vue组件基础用法

    前面的话 组件(Component)是Vue.js最强大的功能之一.组件可以扩展HTML元素,封装可重用的代码.根据项目需求,抽象出一些组件,每个组件里包含了展现.功能和样式.每个页面,根据自己所需, ...

  3. Vue组件基础

    <!DOCTYPE html><html>    <head>        <meta charset="utf-8">      ...

  4. vue组件封装及父子组件传值,事件处理

    vue开发中,把有统一功能的部分提取出来,作为一个独立的组件,在需要使用的时候引入,可以有效减少代码冗余.难点在于如果封装,使用,如何传参,派发事件等,我会采取倒叙的方式进行说明.(本文总结于Vue2 ...

  5. Vue 组件基础完整示例

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. vue组件基础之创建与使用

    一.创建组件 <script src="vue.js"></script> <!--引入vue.js文件--> <div id=" ...

  7. Vue.js 学习笔记之四:Vue 组件基础

    到目前为止,这个系列的笔记所展示的都是一些极为简单的单页面 Web 应用程序,并且页面上通常只有几个简单的交互元素.但在实际生产环境中,Web 应用程序的用户界面往往是由多个复杂的页面共同组成的.这时 ...

  8. Vue组件基础知识总结

    组件系统是Vue.js其中一个重要的概念,它提供了一种抽象,让我们可以使用独立可复用的小组件来构建大型应用,任意类型的应用界面都可以抽象为一个组件树. 那么什么是组件呢?组件可以扩展HTML元素,封装 ...

  9. Vue 组件基础完整示例2

    简介此页面可以直接复制运行,包含以下应用: Vue slot插槽使用Vue v-model使用Vue props使用父子组件数据传递element-ui使用HTML方式注册子组件,可以将子组件数据写在 ...

随机推荐

  1. C语言printf函数

    #include<stdio.h> //int float double short char long int main() { //int printf(const char *for ...

  2. 如何在mysql数据库中开启使用tab键补全功能

    声明:数据库tab键补全的是表名,列名,数据库名,不是数据库中的命令,变量等 永久支持tab键补全[root@localhost ~]# vim /etc/my.cnf添加以下两行:[mysql]au ...

  3. POJ-2888 Magic Bracelet(Burnside引理+矩阵优化+欧拉函数+逆元)

    Burnside引理经典好题呀! 题解参考 https://blog.csdn.net/maxwei_wzj/article/details/73024349#commentBox 这位大佬的. 这题 ...

  4. 第1篇Kubernetes介绍

      一.Kubernetes 介绍:     kubernetes起源 Kubernetes (K8s) 是 Google 在 2014 年发布的一个开源项目. 据说 Google 的数据中心里运行着 ...

  5. php自动生成不重复的id

    PHP uniqid()函数可用于生成不重复的唯一标识符,该函数基于微秒级当前时间戳.在高并发或者间隔时长极短(如循环代码)的情况下,会出现大量重复数据.即使使用了第二个参数,也会重复,最好的方案是结 ...

  6. 记录常用的linux命令

    原文链接:https://www.cnblogs.com/suger43894/p/11024594.html 系统信息相关 date 显示系统日期 cat /proc/mounts 显示已加载的文件 ...

  7. json转换为map

    // json转换为map public static Map parserToMap(String s) { Map map = new HashMap(); JSONObject json = J ...

  8. 电子商务B2B的发展趋势

    B2B的发展趋势 尽管B2B市场发展势头良好,但B2B市场还是存在发育不成熟的一面.这种不成熟表现在B2B交易的许多先天性交易优势,比如在线价格协商和在线协作等还没有充分发挥出来. 报告指出,到200 ...

  9. Delphi ADOQuery的 DisableControls 和 EnableControls方法

    DisableControls方法是在程序修改或后台有刷新记录的时候切断数据组件,如TTABLE.ADOQUERY等等与组件数据源的联系.如果没有切断,数据源中只要一有数据的改动,尤其是批量改动的话, ...

  10. 分布式项目spring 配置文件的约束

    <?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.spr ...