# vue_base_2 **Repository Path**: redlonely/vue_base_2 ## Basic Information - **Project Name**: vue_base_2 - **Description**: learning vue - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-09-13 - **Last Updated**: 2022-09-23 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ## 武汉前端 0516Vue - vue插件: * Vetur -- Pine Wu * Vue 3 Snippets----hollowtree * vue-helper --- shenjiaolong - 其他插件: * vscode-icons * Prettier - Code formatter - day01: - MVVM(背会) * MVVM分为三个部分:分别是M(Model,模型层 ),V(View,视图层),VM(ViewModel,视图数据层,V与M连接的桥梁) * M:模型层,值得是数据模型,主要负责业务数据相关; * V:视图层,顾名思义,负责视图相关,细分下来就是html+css层,为了更方便的展示Model层的数据; * VM:V与M沟通的桥梁,负责监听M或者V的修改,是实现MVVM双向绑定的要点 * ViewModel是Vue.js的核心,它是一个Vue实例,MVVM支持双向绑定,意思就是当M层数据进行修改时,VM层会监测到变化,并且通知V层进行相应的修改,反之修改V层则会通知M层数据进行修改 - CDN(背会) * CDN即内容分发网络。 * CDN是构建在现有网络基础之上的智能虚拟网络,依靠部署在各地的边缘服务器,通过中心平台的负载均衡、内容分发、调度等功能模块,使用户就近获取所需内容,降低网络拥塞,提高用户访问响应速度和命中率 - 水平垂直居中(3 种方式) * flex * 绝对定位+transfrom的translate * 绝对定位+四个方向为0+margin:auto - 与或非返回值 * A&&B:如果A为truthy则返回B,否则返回A * A||B:如果A为truthy则返回A,否则返回B * !:取反,一定返回布尔值 - truthy(真值)和 falsy(虚值) * truthy(真值)指的是在布尔值上下文中,转换后的值为 true 的值 * falsy 值(虚值)是在 Boolean 上下文中认定为 false 的值。 - data为什么是一个函数 * 当一个组件被定义,data 必须声明为返回一个初始数据对象的函数,因为组件可能被用来创建多个实例。 * 如果 data 仍然是一个纯粹的对象,则所有的实例将共享引用同一个数据对象,则会互相影响 * 通过提供 data 函数,每次创建一个新实例后,我们能够调用 data 函数,从而返回初始数据的一个全新副本数据对象 - day02 - v-bind批量绑定 - v-bind强制绑定class * 字符串:只有一个类的时候,可以使用 * 对象:有一个或者或者多个类,并且已经确定了类的数量,可以使用 * 数组:一个或者多个类,但是不确定数量,因为我们可以对数组进行增删改查 - v-bind强制绑定style * 对象:常用,把样式以键值对的形式书写在对象中 * 数组:把多个style对象可以组合在数组中 - v-on注意: * 事件函数书写位置在methods配置中,绑定事件可以简写为@ * 获取事件对象 + !!!在v-on的插值语法区域就已经存在一个$event代表事件对象 + 如果绑定事件函数没有加括号,则默认传入 + 如果绑定事件函数加了括号,则需要我们显示传入 - v-on的事件修饰符 * .stop * .prevent * .once * .capture * .self * .按键别名 - v-model基础使用 * 作用:数据双向绑定 * 本质:给标签的value进行强制绑定,然后再绑定一个input事件,触发数据的改变 * 修饰符:.lazy .number .trim - v-model收集数据 * 复选框单独使用:使用布尔值收集 * 复选框多个使用:使用数组收集所有选中的value值 * 单选框的使用:使用字符串收集 * select的使用 + 单选:字符串收集 + 多选(mutiple):数组收集 * textarea:使用字符串收集 - DOM复习:事件模型(通俗讲:绑定事件的方式) * 基本事件模型(DOM0事件模型):使用率最高的on+事件类型绑定 * DOM事件模型(DOM2事件模型):在W3C指定的DOM2级规范中提出,使用方式的addEventListener() * IE事件模型(只能在IE中使用):attachEvent() * 网景事件模型(只能在网景浏览器中使用):淘汰 - DOM复习:事件流(事件机制) * 事件流就是多个节点对象对同一种事件进行响应的先后顺序 * 捕获阶段:事件从最不确定的目标(document对象)开始触发,然后到最特定的目标(target) * 目标:注册在目标节点上的事件被执行 * 冒泡阶段:事件从最特定的目标(target)向最不特定的目标(document对象)触发 - 阻止传播和阻止默认事件 * 阻止传播:e.stopPropagation() || e.cancelBubble = true * 阻止默认事件:e.preventDefault() || e.returnValue = false - trim方法 trimStart方法 trimEnd方法 - day03 - v-if条件渲染 * v-if \ v-else-if \v-else * 模板在编译的时候,就忽略了不符合条件的模板,所以不满足条件的模板压根都没渲染在视图中 * 注意事项 - v-if的三个指令必须连着使用,中间不能间隔其他元素 - 如果有多个碎片节点需要条件渲染,我们可以使用template元素(在渲染后是不可见的) - 如果在条件切换时,视图也会跟着切换,因为有diff算法默认比较,所以可能会出现复用元素的情况,如果不想复用,则给不想复用的元素添加key属性 - v-show条件渲染 * 不同的是带有 v-show 的元素始终会被渲染并保留在 DOM 中。v-show 只是简单地切换元素的 CSS property display。 * v-show 不支持