vue基础-第二天
01-反馈
姓名 意见或建议
*** 老师棒棒哒
*** 慢慢慢慢,信息量太大,求练习时间
*** 老师,您的笔记可不可以写的再详细一点,初学Vue,可能一个很小的是知识点都很难理解,谢谢老师
*** 对于v-for理解偏差,刚哥,以后咱div里面放h标签好不好,老是放个P隔着屏幕都能闻到,啊 还有就是为刚哥的汉语拼音操心发愁啊O(∩_
*** 周老师,ES6中的函数this指向不清楚.什么时候是指向window,什么时候是指向其他的情况呢? 谢谢~
*** 视频杂音太大
- 笔记问题
- v-for 指令 增强标签的功能 让标签具备遍历的功能
- ES6中的函数-->箭头函数-->其实是没有this-->使用的是当前定义的上一级的this
- 当前调用时 上一级的this指向谁箭头函数内的this指向谁
- 插耳机 02-回顾
- vue是一个js框架
- 适合做spa类型系统
- mvvm框架 减少dom操作 数据驱动视图 数据双向绑定
- 使用vue有三个选项 new Vue({}) el data methods
- 插值表达式 {{}} 指令
- v-text v-html
- v-if v-show
- v-on 简写 @
- v-bind 简写 :
- v-for
- v-model 语法糖 -> :value @input
03-vue基础-v-bind-绑定class
- 语法: v-bind:class=“数据” :class="数据"
- 数据:可以是对象 可以是数组
- 对象:数据格式--》{'类名':‘布尔值’} 键就是类名 布尔值 true 添加 false 移除
- 数组:数据格式--》['类名',‘类名’] 添加 加一项 移除 去除这一项
04-vue基础-v-bind-绑定style
- 语法: v-bind:style=“数据” :style="数据"
- 数据:可以是对象 可以是数组
- 对象:数据格式--》 {css属性:css属性的值,...}
- 数组:数据格式--》[{css属性的键值对},{css属性的键值对}]
05-vue基础-v-cloak
- 是在视图未渲染的时候去隐藏视图使用插值表达式的地方
- 但是需要自己配合 写一段样式 ` [v-cloak]{ display: none; }
06-vue基础-v-once
- 作用:使用该指令的元素只会渲染一次
07-表格案例-静态页面
- 了解结构
- 分析需求
- 列表展示
- 删除
- 添加
- 搜索
08-表格案例-列表展示
- 步骤
- 引入vue
- 初始化实例
- 指定数据 [{},{}]
- 在tr的位置进行遍历 使用的是 v-for :key指定的是 item.id
- 在tr内部去通过插值表达式 输出内容
09-表格案例-添加品牌
- 步骤
- 绑定添加事件
- 绑定v-model数据 输入框
- 把输入的内容 组织对象 push 追加list数据
- 清空输入框内容
10-表格案例-删除品牌
- 步骤
- 绑定事件 主要 阻止浏览器行为
- 获取到索引- 通过id去查找(findIndex((item,i)=>item.id===ID)) this.list.splice(index,1)
- 补充:提示没有数据 v-if="list.length===0"
11-表格案例-其他效果演示
- 处理时间格式
- 自动获取焦点 给标签加上 autofocus 属性但是这是H5的方式 使用vue的方式来实现
- 搜索
12-过滤器-文档分析
- 自己分析:作用是把原始数据按照一定的规则转换成新格式的数据
- 在插值表达式可是使用 在v-bind的属性也是可以使用
- 使用语法:{{message | 过滤器}}
13-过滤器-全局过滤器
- 一个VM实例管理一个区域,但是可以使用多个VM管理多个区域
- 定义的全局过滤器 可以在任何视图使用
- 如果 vm 管理的区域想使用 过滤器 需要在实例之前来定义过滤器
- 语法:Vue.filter('过滤器的名称',function(管道符前的结果){//逻辑 return '返回结果'})
14-过滤器-局部过滤器
- 如果定义的是局部的过滤器 只能在当前定义过滤器的实例管理的视图中使用
- 在 new Vue({}) 选项对象定义一个 选项 filters 指向对象 来定义过滤器
- key:function(v){}
- key的名字就是过滤器的名称
- 函数就是处理函数一定需要返回值
- 函数中的v是管道符前的执行结果
15-过滤器-参数和串联使用
- 串联语法 {{message|upper|其他过滤器}}
- 传参 {{message|upper|其他过滤器(参数) }}
16-表格案例-用过滤器转换日期
- 自己去转换日期
- 使用momnet.js
17-vue基础-ref操作dom
- 给这个元素加一个属性 ref="dom的标识"
- 在函数中 vm.$refs 的对象 你的dom就挂载在该对象
- 语法:this.$refs.dom的标识 去操作dom
18-自定义指令-全局指令
语法:Vue.directive('指令名称',{inserted:function(){ //实现指令的功能 } })
19-自定义指令-局部指令
/*
选项 directives:{key:value}
key就是指令的名称
value就是配置指令的对象 {inserted:function(el){//实现指令功能}}
*/
20-表格案例-用指令获取焦点
Vue.directive('focus',{
inserted(el){
el.focus()
}
})
21-计算属性-文档分析
- 使用场景:当前插值表达式逻辑复杂是 使用 计算属性 实现
- 计算属性:会依赖data中的数据,通过一定的逻辑生成一个新数据
22-计算属性-基本用法
- 在Vue({}) 选项中 computed 选项
- computed:{} 对象是用来定 若干个计算属性的
- key:value组成
- key 计算属性名称
- value 处理逻辑的函数 函数的返回值就是计算属性的值
23-计算属性-methods方法区别
- 视图更新时,操作的不是计算属性的数据,那么计算属性不会再次计算 函数会再次执行
- 当多次调用的时候 计算属性会缓存 函数多次调用
24-表格案例-商品搜索功能分析
- 获取输入的搜索关键字 v-model绑定
- 根据搜索关键字 去 data中的list 查找
- 使用计算属性 去依赖list数据 获取符合条件的数据也是一个数组
- 默认是所有的数据都符合条件 一开始就可以使用 筛选后的数组
25-表格案例-回顾ES6高阶函数
- Array.filter() 筛选数组中符合条件的选项返回一个新数组
-
const arr = [1,2,3,4,5] // 筛选 大于 3 的选项 组成一个新数组 // filter 也会遍历 const newArr = arr.filter((item,i)=>{ return item > 3 }) // ES6的函数 // findIndex() // padStart(10,'-') padEnd(10,'-') - String.includes() 判断字符串中是否包含某段字符
-
const str = 'abcd' const flag = str.includes('ab')
26-表格案例-计算属性实现搜索
见案例