js对象是引用关系,所以要注意数据使用时候可能发生的异常情况
组件内的props短横线命名

注册的几种方式

全局组件

  1. Vue.component('my-component',{
  2. template:'<p>my content</p>',
  3. data: function(){
  4. }
  5. })

局部组件

利用components选项

  1. <div id="app">
  2. <my-component></my-component>
  3. </div>
  4. <script>
  5. var Child = {template :'</div>局部注册组件的内容</div>'}
  6. var app = new Vue({
  7. el :'#app' ,
  8. components: (
  9. 'my-component':Child
  10. })
  11. </script>

使用is直接挂载组件

比如动态组件

  1. <component v-bind:is="currentComponent"></component>

数据传递

监听组件自定义事件
监听组件原生事件 native
子组件向父组件回传
$emit()方法的第一个参数是自定义事件名称