###1.  定义子组件
```
```javascript
<template>
  <div>{{data}}
  </div>
</template>
<script>
export default {
  props: ['data'], // 接收父组件给子组件定义的属性
}
</script>
```
```
    
###2.  子组件引入, 注册, 使用
```
```js
<template>
  <div>
    父组件显示:{{msg}}
    <DemoComp
      :data='msg'
    ></DemoComp>
  </div>
</template>
<script>
import DemoComp from '@/components/DemoComp'
export default {
  components: {
    DemoComp
  },
  data() {
    return {
      msg: '父组件的信息'
    }
  },
  methods: {
  }
}
</script>
```
```
###3.  给子组件添加事件及事件处理方法
```
```javascript
<template>
  <div>
    父组件显示:{{msg}}
    <DemoComp
      :data='msg'
      @changeMsg='change'
    ></DemoComp>
  </div>
</template>
<script>
import DemoComp from '@/components/DemoComp'
export default {
  components: {
    DemoComp
  },
  data() {
    return {
      msg: '父组件的信息'
    }
  },
  methods: {
    change(data) {
      // debugger
      // alert('调用了父组件的方法, 接收到信息:'+data)
      this.msg = data  // 更新父组件的内容
    }
  }
}
</script>
```
```
###4.  子组件通过触发方法, 向父组件传值
```
```javascript
<template>
  <div>{{data}}
    <button @click="emitfather">调用父组件方法</button>
  </div>
</template>
<script>
export default {
  props: ['data'], // 接收父组件给子组件定义的属性
  methods: {
    emitfather() {
      this.$emit('changeMsg', '子组件信息')
    }
  }
}
</script>
```
```
###5.  属性.sync 方式, 来更新父组件的信息, 父组件内容
```
```javascript
<DemoComp
      :data.sync='msg'
></DemoComp>
```
```
###6.  子组件内容:
```
```javascript
<template>
  <div>{{data}}
    <button @click="emitfather">调用父组件方法</button>
    <button @click="$emit('update:data', '使用sync更新父组件')">更新父组件信息</button>
  </div>
</template>
<script>
export default {
  props: ['data'], // 接收父组件给子组件定义的属性
  methods: {
    emitfather() {
      this.$emit('changeMsg', '子组件信息')
    }
  }
}
</script>
```
```
###7.  element-ui的安装和引入
```
```javascript
// 1. 安装:   npm install element-ui
// 2. 配置:   
// main.js文件
import Vue from 'vue'
import App from './App'
import router from './router'
//========== 增加这部分内容
// 引入 elementui
import ElementUI from 'element-ui'
import 'element-ui/lib/theme-chalk/index.css'
Vue.use(ElementUI)
//===========
```
    Vue.config.productionTip = false
    /* eslint-disable no-new */
    new Vue({
      el: '#app',
      router,
      components: { App },
      template: '<App/>'
    })
    
```
```
```
###8.  element-ui的使用
```
```javascript
// 组件中直接使用 element-ui的组件即可
<template>
  <div>
    <el-dialog
      title="新增图书"
      :visible="visible"
    >
          ...
    </el-dialog>
  </div>
</template>
```
```