前端初学者,最近学的vue,但是组件通信这部分我没理解
组件是孤立实例,也就是在vue根实例或者父组件
引入<student>这种自定义子组件标签的时候不能给子组件标签 的元素特性v-if v-model v-for v-on以及其他特性等等绑定
根实例的data methods 等等,我这样理解没错吧?
但是我看到网上有些例子,比如element ui就经常直接在子组件比如<el-button>中
v-model="父组件data" v-on:cilck="父组件method"
难道是我理解错了?
看过了文档,没看源码,基本明白了
那些ui和例子还是用了prop和自定义事件
但是因为直接拿出组件省略了源码所以导致我没弄懂
绑定父组件data和methods都是一样的。
要么子组件先定义一个prop 然后在子组件标签中bind:prop="父data"。
要么就是在子组件定义(注册)时,模板里面先on:click=子组件的method,这个method会emit一个自定义事件。
然后我们使用子组件标签时就可以直接on:自定义事件="父method
两种方法都能实现双向绑定
至于v-model是一种语法糖,实际上是v:bind prop和v-on 的复合