美文网首页
vue中的组件间通信

vue中的组件间通信

作者: 东方三篇 | 来源:发表于2020-07-04 11:43 被阅读0次

父子组件相互通信

```bash
# 父组件
<template>
  <div>
    # 使用引入的子组件, 没有 :是静态传值, :是 v-bind的简写, 指的是动态传值
    # .sync 修饰符,可以显性的让 子组件 更新 父组件 age 的值,实现 ‘双向绑定’
    # <son :age.sync="age" /> 会被vue默认拓展成 <son :age="age" @update:age=val=>age=val /> 在子组件里也需要 emit 触发更新
    # v-on传方法给子组件 v-on: 可以用 @简化
    <Son name="York" :birth="birth" :sex="sex" :age.sync="age" /* v-on:counter="notice" */ @counter="notice"> </Son>
  </div>
</template>
<script>
  import Son from './son'
  export defaulte {
    name: 'Father',
    data () {
      birth: '1988-8-1',
      sex: 'male',
      age: 18
    },
    components: {Son}
    methods: {
      notice (val) {
        console.log('子组件触发父组件的方法,病传值 val 回来!', val)
        this.birth = this.format(val)
      },
      format () { ... }
    }
  }
</script>
```

```bash
# 子组件
<template>
  <div>{{name}}:{{birth}}:{{sex}}</div>
  <button @click="passBirth(val)">更新生日</button>
  <button @click="updateAge(val)">更新年龄</button>
</template>
<script>
  export defaulte {
    name: 'Son',
    # 用props接收父组件传入的值,并可以做校验
    # props: ['name', 'birth', 'sex'] 不做校验的方法
    props: {
      name: String,
      birth: [String, Number],
      sex: {
        type: String,
        required: true,
        default: 'male'
      },
      age: {
        validator: value => {
          return value > 10 // 自定义校验
        }
      }
    }
    data () {},
    methods: {
      passBirth (val) {
        this.$emit('counter', val) // count是父组件传入的方法名, 在子组件内调用
      },
      updateAge (newValue) {
        this.$eimt('upadte:age', newValue) // 触发更新 父组件 通过 .sync 修饰符 传入的 age 值
      }
    }
  }
<script>
```

非父子组件间通信

可以用一个空的 Vue 实例,作用中央事件总线, 不过比较复杂的场景, 个人更倾向于使用 vuex。

关于vuex请查阅: https://www.jianshu.com/writer#/notebooks/45129165/notes/72862417

相关文章

  • vue组件间通信的一些实用方法(VUE2.x)

    vue组件间通信的一些实用方法(VUE2.x) 一、父子组件间通信 常用的父子组件通信方法,一般涉及props和$...

  • vue文档集合

    Vue2使用笔记3--父子组件的通信Vue 2.0开发实践(组件间通讯)Event Bus 在Vue中的使用vue...

  • vue 组件通信方式 ,父子、隔代、兄弟 三类通信,六种方法

    Vue 组件间通信只要指以下 3 类通信:父子组件通信、隔代组件通信、兄弟组件通信,下面分别介绍每种通信方式且会说...

  • vue.js系列三:组件间通信

    1.组件间通信基本原则 2.vue 组件间通信方式 2.1组件间通信 1: props(适用于父子组件传递属性) ...

  • vue组件间通信

    vue组件间通信 1.父组件向子组件传递数据--props 在vue2.0中使用props实现向子组件传递数据: ...

  • Vue之间的通信方式

    Vue组件间通信方式 快速原型开发 可以快速识别.vue文件封装组件插件等功能 一.Props传递数据 在父组件中...

  • vue中的组件间通信

    vue中组件通信方法有很多种,可以根据具体场景来选择具体使用哪种。比较常见的以下几种方法: 1、父组件向子组件传参...

  • vue中的组件间通信

    父子组件相互通信 非父子组件间通信 关于vuex请查阅: https://www.jianshu.com/writ...

  • Vue组件间通信方式都有哪些?

    一、组件间通信的概念 开始之前,我们把组件间通信这个词进行拆分 组件 通信 都知道组件是vue最强大的功能之一,v...

  • vue的组件通讯

    一、组件间通信的概念 开始之前,我们把组件间通信这个词进行拆分 组件 通信 都知道组件是vue最强大的功能之一,v...

网友评论

      本文标题:vue中的组件间通信

      本文链接:https://www.haomeiwen.com/subject/luquqktx.html