父组件和子组件之间的交互

第一种:利用props

父组件定义一个number-to-do,传给子组件<com-a>
<com-a number-to-do=5></com-a>
子组件在js中定义props数组
props: ['number-to-do']
就可以在子组件的html中直接取值
{{ numberToDo }}
或者可以定义props对象
props: { 'number-to-do': [Number, String] }
来指定传来的值是数字还是字符串

第二种:利用插槽(并不是传值,只是会在子组件渲染显示)

父组件在子组件内部写入数据

<com-a>
  <p>123</p>
</com-a>

子组件在html中写入
<slot></slot>
就可以实现将父组件中写入的数据传给子组件
我们也可以通过对<slot>进行定义属性来指定插槽位置
父组件中这样写:

<com-a>
  <p slot="oneslot">123</p>
  <p slot="twoslot">456</p>
</com-a>

子组件中这样写:

<slot name="oneslot">i am oneslot</slot>
<p>乱七八糟</p>
<slot name="twoslot">i am twoslot</slot>

当指定的slot没有被引用时,就展示slot标签中的默认值

第三种:子组件来触发emit事件

在子组件中定义一个方法
<button @click="emitMyEvent">emit</button>

emitMyEvent () {
      this.$emit('my-event', this.hello)
    }

在父组件中监听这个emit事件
<com-a @my-event="getMyEvent"></com-a>

getMyEvent (hello) {
      console.log('i get my event' + hello)
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 10,480评论 0 29
  • 什么是组件 组件(Component)是 Vue.js 最强大的功能之一。组件可以扩展 HTML 元素,封装可重用...
    angelwgh阅读 4,143评论 0 0
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 136,153评论 19 139
  • 不知从什么时候起,我的脑海里总是出现一些画面,我好像做了一个很长的梦,梦里,有一个男孩,我好像很喜欢他
    姜姜酱酱阅读 1,652评论 0 0
  • load方法: 当一个类或者该类的分类被加入Objective-C运行时的时候被调用。load method调用的...
    爆炸头的波波安阅读 4,527评论 2 12

友情链接更多精彩内容