VUE 组件 + el 安装配置

###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>
​```

```

​