### 彪哥

爱好前端

- 基础

- 组件

  - 使用组件的细节点
  - 父组件给子组件传值
    - 单向数据流
    - 父子组件间传递数据 demo
  - 子组件派发事件和值给父组件
  - Prop 验证 与 非 Prop 的 Attribute
  - 自定义事件
  - 兄弟组件传值
  - 非父子组件传值
  - 父组件调用子组件方法并传入值
  - 插槽slot
  - 动态组件与 v-once 指令
  - vue父子组件的生命周期顺序

- 过渡&动画

- 可复用性&组合

- 工具

- 规模化

- Vuex

- 其他

- 《Vue》笔记
- 组件

heBody
2020-02-04
目录

# 父组件给子组件传值

# # 父组件给子组件传值

父组件中，通过给子组件标签v-bind绑定属性的方式传入值

    <ComponentName v-bind:name="value"></ComponentName>

1

> 如果不使用v-bind传入的值为字符串，使用v-bind绑定传入的值为表达式。 子组件中，通过props对象接收值

     props: {
        name: { // 接收父组件传入值
            type: String || ...,
            default: ''
        }
     }

1
2
3
4
5
6

## # 单向数据流

所有的 prop 都使得其父子 prop 之间形成了一个单向下行绑定：父级 prop 的更新会向下流动到子组件中，但是反过来则不行。这样会防止从子组件意外改变父级组件的状态，从而导致你的应用的数据流向难以理解。

子组件不能直接修改父组件传入的值

这里有两种常见的试图改变一个 prop 的情形：

1. 这个 prop 用来传递一个初始值；这个子组件接下来希望将其作为一个本地的 prop 数据来使用。在这种情况下，最好定义一个本地的 data 属性并将这个 prop 用作其初始值：

    props: ['initialCounter'],
    data: function () {
      return {
        counter: this.initialCounter
      }
    }

1
2
3
4
5
6

2. 这个 prop 以一种原始的值传入且需要进行转换。在这种情况下，最好使用这个 prop 的值来定义一个计算属性：

    props: ['size'],
    computed: {
      normalizedSize: function () {
        return this.size.trim().toLowerCase()
      }
    }

1
2
3
4
5
6

## # 父子组件间传递数据 demo

See the Pen mdJVqgg by heBody (@heBody) on CodePen.

编辑
(opens new window)
#Vue
上次更新: 2022/12/14, 19:36:42
使用组件的细节点
子组件派发事件和值给父组件

← 使用组件的细节点 子组件派发事件和值给父组件→

最近更新

  01
Git修改分支名
08-11

  02
CSS给table的tbody添加滚动条
06-29

  03
我做了一个手写春联小网页，祝大家虎年暴富 原创
01-28

更多文章>

Copyright © 2016-2022 Hesb | MIT License

- 跟随系统
- 浅色模式
- 深色模式
- 阅读模式