一、知识回顾
熟练度错觉
- HTML区域语法
- {{}} 数据渲染
- v-html 渲染富文本
- v-if v-elseif v-else v-show
- v-bind:class 简写 :class
- v-on:click 简写 @click
- v-for="(item,index) in 数据" 嵌套循环注意事项
- v-model 数据双向绑定
- JS区域语法
new Vue({
el:'#app', //地盘
data:{}, //经济
computed:{}, //对data进行处理
methods:{}, //职能部门
})
二、watch监听
监听data的 变化,作出事件响应 使用场景
-
监听音乐播放时间变化,同步改变进度条
-
监听数据变化,进行本地缓存
-
浅监听
stu(){ //监听stu的变化 【浅监听】
console.log('监听到了stu的变化');
localStorage.setItem('stu',JSON.stringify(this.stu))
}
- 深监听
stu:{ //深监听
handler(){ //处理函数
console.log('深监听');
localStorage.setItem('stu',JSON.stringify(this.stu))
},
deep:true //开启深监听
}
三、生命周期钩子函数
在Vue实例创建过程中,会自动触发执行的一些特殊的函数
- 生命周期的四个阶段 生命周期函数图
- 创建阶段
- 渲染阶段
- 更新阶段
- 销毁阶段
-
created的使用场景
-
使用axios发起异步请求
基于Promise对象封装而成的,专门用于发起http异步请求的方法库 文档
-
回调函数的方式 【可能会导致回调地狱】
-
$.ajax({ url:'', success:(res)=>{
} })
-
-
promise写法
-
axios({ url:'' }).then(res=>{
})
-
- 使用axios请求在线接口
axios({
url,
method:'get',
headers:{ //验证信息,是可选的,后端来决定
'X-Client-Info': '{"a":"3000","ch":"1002","v":"5.0.4","e":"1610071819201726023958529"}',
'X-Host': 'mall.film-ticket.film.list'
}
}).then(res=>{
console.log(res);
})
消息发送的解决方案
- 使用两个input 【不容易想到】
对于理论的熟练度
四、学员信息录入系统
- 渲染用户 v-for v-if 【完成】
- 录入功能 v-model v-on:click 【完成】
- 删除用户 Array.splice(index,1)
- 删除所有
- 学员筛选功能 computed
五、尝试新功能
- 将录入的学员存入本地存储 watch监听
- 初始化的时候,提取本地存储的内容,做渲染 created
六、任务
-
理论内容
-
课堂案例
-
拓展功能
v-bind:class属性控制语法
- 三目运算
- 对象
- 数组 适合同时控制多个class变化
- 数组+ 三目 适合同时控制多个class变化
- 数组+ 对象 适合同时控制多个class变化
一、组件化介绍
- 什么是组件化?
组件是一个独立封装,带有功能的一个代码板块 组件三要素: + 结构 HTML + 样式 CSS + 功能 JS、JQuery、Vue
- 为什么采用组件化?
提高代码的复用性、提升开发效率 项目可维护性较好
- 如何实现组件化开发?
先挂载、后使用
- 封装组件
- 挂载组件
- 调用组件
二、vue中组件化
在Vue项目开发时,组件都会被封装成为一个独立的 .vue文件
- 全局挂载
Vue.component('my-select',{ //为Vue全局挂载组件
template:`<div class="my-select">
此处定义组件结构
</div>`
})
- 局部挂载
new Vue({
el:'#app',
components:{ //局部挂载组件
'my-select':{
template:`<div class="my-select">
<input type="text">
</div>`
},
'my-alert':{},
'my-button':{}
}
})
- 组件的复用性
开放封闭 原则
- 开放 组件应该提供一些供使用者可自定义调整的接口
- 封闭 组件内部的通用功能,应该在内部实现后,方便直接调用
三、props组件传参
在组件内部开放一个数据接口,供用户向组件内部传递自定义的数据
- 在组件内部定义props
props:['list','holder'],
- 在调用组件的时候,传递props
<my-select :list="food" holder="请选择食物"></my-select>
- 命名规范
- 全小写 listdata
- 全大写 LISTDATA const定义的常量才会使用
- 小驼峰 listData
- 大驼峰 ListData
- 烤串命名法 list-data
- props 命名要求
- 组件外部全小写传递 listdata,内部全小写接收 listdata
- 组件外部烤串传递 list-data,内部使用小驼峰接收 listData
四、组件内部可以使用那些配置项?
-
new Vue 实例对象
-
el
-
data 是对象
-
computed
-
watch 可以监听data中的数据变化,作出反应
-
methods
-
created 等生命周期
-
components
-
-
Vue.component 组件对象
-
template
-
data 组件内部的data,必须是函数
-
props 接收外部数据包
-
computed
-
watch 可以监听data、props中的数据变化,作出反应
-
methods
-
created 等生命周期
-
components
-
select组件封装
任务
-
知识点
- watch
- 生命周期
- axios
- 组件封装 select课堂案例
-
独立完成课堂案例
- 用户信息录入综合案例,必须能够独立完成 【!!重要!!】
-
【拓展练习】封装分割线组件 分割线示例
- 分割线显示的文字内容 title
- 控制文字位置 orientation 左中右
- 控制线条样式 dashed 是否为虚线
- 控制线条颜色 color
<my-divider title="" orientation="right" :dashed="true" color="red"></my-divider>