# Vue实战培训
<br>
## 1 培训简介
### 1.1 内容
本次培训是一次代码实战培训,首先在了解了Vue组件核心概念和通信方式之后,将以Vue工程实现具体客开需求的角度给
大家一个更加具体的实战学习。
### 1.2 目标
认真学完之后,大家将能够初步上手使用Vue工程及组件等开发客开需求。
<br><br>
## 2 Vue组件
### 2.1 Vue组件介绍
组件是可复用的 Vue 实例,且带有一个名字。所以它们与 new Vue 接收相同的选项,例如 data、computed、watch、
methods 以及生命周期钩子等。可以将组件进行任意次数的复用,一个组件的 data 选项必须是一个函数,因此每个实例
可以维护一份被返回对象的独立的拷贝。
::: demo
```js
Vue.component('button-counter', {
data: function () {
return {
count: 0
}
},
template: '<button v-on:click="count++">You clicked me {{ count }} times.</button>'
})
```
:::
<a href="https://codepen.io/cyt68/pen/MWwpmdm" target="_blank">在线运行示例</a>
### 2.2 vue组件三大核心概念
<img src='https://t1.picb.cc/uploads/2020/03/04/k37edR.png'>
2.2.1 属性
自定义属性props:prop 定义了这个组件有哪些可配置的属性
inheritAttrs:默认情况下父作用域的不被认作 props 的特性绑定将会“回退”且作为普通的 HTML 特性应用在
子组件的根元素上。可通过设置 inheritAttrs 为 false,这些默认行为将会被去掉。
注意:这个选项不影响 class 和 style 绑定。
data与props:data 被称之为动态数据,在各自实例中,在任何情况下,我们都可以随意改变它的数据类型和数据
结构,不会被任何环境所影响。props 被称之为静态数据,在各自实例中,一旦在初始化被定义好类
型时,基于 Vue 是单向数据流,在数据传递时始终不能改变它的数据类型,而且不允许在子组件中
直接操作 传递过来的props数据,而是需要通过别的手段,改变传递源中的数据。
单向数据流:props的数据都是通过父组件或者更高层级的组件数据或者字面量的方式进行传递的,不允许直接操作
改变各自实例中的 props数据,而是需要通过别的手段,改变传递源中的数据。
2.2.2 事件
事件修饰符
2.2.3 插槽
普通插槽和作用域插槽
<br><br>
## 3 Vue组件间通信
### 3.1 通过 Prop 向子组件传递数据,子组件可以通过调用内建的 $emit 方法 并传入事件名称来触发一个事件
Prop 是你可以在组件上注册的一些自定义 attribute。当一个值传递给一个 prop attribute 的时候,它就变成了
那个组件实例的一个属性。
::: demo
```js
Vue.component('button-counter1', {
props: ['count'],
template: '<button v-on:click="emitAdd">You clicked me {{ count }} times.</button>',
methods: {
emitAdd() {
this.$emit('add');
}
}
})
```
:::
### 3.2 利用事件总线通知事件
这种方法通过一个空的Vue实例作为中央事件总线(事件中心),用它来触发事件和监听事件,巧妙而轻量地实现了任何
组件间的通信,包括父子、兄弟、跨级。
::: demo
```js
var Event=new Vue();
Event.$emit(事件名, 数据);
Event.$on(事件名, data => {});
```
:::
### 3.3 $parent / $children与 ref
ref:如果在普通的 DOM 元素上使用,引用指向的就是 DOM 元素;如果用在子组件上,引用就指向组件实例
$parent / $children:访问父 / 子实例
其他还有vuex,provide/inject,$attrs/$listeners等方式。
概念了解之后,我们用实际项目来学习一下。
- 概要
- 技术介绍
- 框架与环境
- vue开发
- 开发规范
- 前端开发规范
- 总体原则
- HTML规范
- HTML&css规范
- vue编码规范
- Javascript规范
- 后端开发规范
- cap4
- 自定义控件
- 前端2.0(PC+移动)
- PC前端
- 后端
- 移动端
- 移动端接口
- 低版本协同升级到V5 8.0适配说明
- 自定义按钮
- 自定义按钮(无流程)
- 自定义控件(列表插槽)
- 自定义按钮(筛选条件)
- 低版本协同升级到V5 8.0适配说明
- 门户空间
- 门户与栏目挂载
- 栏目开发及流程说明
- 页面模板
- 客开通路及插件体系
- 表单设计器扩展配置
- 使用步骤
- 配置说明
- 事件API
- Demo示例
- 运行态客开通路
- 插件使用步骤
- 插件接口
- 事件接口
- 钩子相关接口
- 表单操作接口
- Demo示例
- 插件机制
- 表单运行态接口(旧)
- 白名单插件
- 版本记录
- vue组件库
- 开发指南
- 开发文档规范
- 业务组件介绍
- 业务组件
- table组件
- 分页组件
- title组件
- 统计排队组件
- code组件
- 条件筛选
- 批量导入
- 上传Excel
- 批量更新
- 批量刷新
- UI组件
- 按钮组件
- 复选组件
- 取色器组件
- 示例组件
- 水平选择组件
- 选图标组件
- 提示组件
- 单选组件
- 搜索组件
- 选择组件
- 穿梭框组件
- 标签组件
- 文本组件
- 树组件
- 验证组件
- 菜单组件
- iframe组件
- toolbar
- 统计组件
- 饼图
- 柱状图
- 图标
- 业务关系开发指南
- 自定义触发
- 自定义关联
- 后端API
- 更新表单数据缓存
- 发起表单流程
- 取得指定表单PDF或截图
- 无流程批量添加
- 无流程批量删除
- 无流程批量更新
- 无流程批量导出
- 客开培训文档
- Vue基础培训
- Vue实战培训
- Vue进阶培训
- VueCLI3培训
- cap3
- 自定义控件
- 后端
- 移动端
- 前端编译
- 表单运行态接口
- 协同云