vue组件通信到底是怎么回事(element)

前端初学者,最近学的vue,但是组件通信这部分我没理解

组件是孤立实例,也就是在vue根实例或者父组件
引入<student>这种自定义子组件标签的时候不能给子组件标签 的元素特性v-if v-model v-for v-on以及其他特性等等绑定
根实例的data methods 等等,我这样理解没错吧?

但是我看到网上有些例子,比如element ui就经常直接在子组件比如<el-button>中
v-model="父组件data" v-on:cilck="父组件method"

难道是我理解错了?

阅读 1.5k
2 个回答
新手上路,请多包涵

看过了文档,没看源码,基本明白了

那些ui和例子还是用了prop和自定义事件

但是因为直接拿出组件省略了源码所以导致我没弄懂

绑定父组件data和methods都是一样的。

要么子组件先定义一个prop 然后在子组件标签中bind:prop="父data"。

要么就是在子组件定义(注册)时,模板里面先on:click=子组件的method,这个method会emit一个自定义事件。
然后我们使用子组件标签时就可以直接on:自定义事件="父method

两种方法都能实现双向绑定

至于v-model是一种语法糖,实际上是v:bind prop和v-on 的复合

最基本的:emit up; prop down!

使用了vux就相当于是React的Redux里的store,存在应用顶层。可以被下面任何组件接收。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题