day10.8
vue是MVVM模式
M(模型):当前视图中可用的数据
V(视图):渲染的UI 即HTML
VM(视图模型):
后端模型:m-v-c-v-m
mvvm省略了加工和处理模型的步骤
MVC模式:
Model(模型):
View(视图):
Controller(控制器):处理和加工Model
v-text 可以给元素设置一些文本值,会将字符串原样输出
v-html 可以给元素设置一些文本值,会将标签解析为dom元素
v-cloak 解决闪烁原理:就是在加载vue代码之前这个元素先让它在页面上隐藏起来,等到vue加载成功以后才会将元素显示出来
v-model 如果要给文本框设置属性最好使用:v-model属性来设置 ,可以让文本框中的数据实行双向绑定
v-bind 其它的属性也依赖于XX属性 可以简写 “:” 号
v-on 绑定事件 简写 直接去掉v-on:改为@
v-if 可以用来控制元素是否显示:true 显示 false 隐藏 v-if隐藏会将元素 完全隐藏,用一个占位来进行占位
v-sh ow 可以用来控制元素是否显示:使用display:none;来隐藏元素
v-for v-for可以用来遍历数组(遍历数据),item 是遍历的项 index是下标 在vue2.0版本中index是放在item之后的
参数三个:item:当前项 key:键 Index:下标
var 的作用: 变量声明 var的特点: 重复声明. 变量提升, 也是缺点 var的作用域: 全局作用域和局部作用域(函数作用域)
let的核心: 增加了块级作用域,不允许作用域提升,不允许重复声明
const 声明的同时必须赋值, 常量不允许修改
数组的解构赋值: 按照索引顺序来解构的.如果解构不成功是undefined
对象的解构赋值: 按照属性名顺序来解构的(此时属性名需要完全对应一致)
day10.9
冒泡和捕获的定义实例 嵌套div,每一个div都有click事件,点击目标事件,先走捕获->目标->冒泡 即捕获:从外到内依次执行click事件,冒泡:从内到外依次执行click事件;
.stop 阻止事件继续传播 即阻止它的捕获和冒泡过程
.prevent 阻止默认事件发生 即DOM对象中的event.preventdefault():
.capture 添加事件监听器时使用事件捕获模式,即在捕获模式下触发
.self 当前元素自身时触发处理函数时才会触发函数,原理:是根据event.target确定是否当前元素本身,来决定是否触发的事件/函数
.once 只触发一次
day10.10/11
每当一个新的vue被建立时,它有一个必选的选项el,就是这个vue对象所服务的对象,除此之外每个vue还有很多其他的选项,比如:
data Vue 实例的数据对象。Vue 将会递归将 data 的属性转换为 getter/setter,从而让 data 的属性能够响应数据变化。对象必须是纯粹的对象 (含有零个或多个的 key/value 对):浏览器 API 创建的原生对象,原型上的属性会被忽略。大概来说,data 应该只能是数据。
methods 可以直接通过 VM 实例访问这些方法,或者在指令表达式中使用。方法中的 this 自动绑定为 Vue 实例。
computed 所有 getter 和 setter 的 this 上下文自动地绑定为 Vue 实例。注意 此处定义的时候使用的是
beforeCreate和created钩子函数之间的生命周期
在这个生命周期之间,进行初始化事件,进行数据的观测,可以看到在created的时候数据已经和data属性进行绑定(放在data中的属性当值发生改变的同时,视图也会改变)。
created钩子函数和beforeMount间的生命周期
首先会判断对象是否有el选项。如果有的话就继续向下编译,如果没有el选项,则停止编译,也就意味着停止了生命周期,直到在该vue实例上调用vm.
m
o
u
n
t
(
e
l
)
。
b
e
f
o
r
e
M
o
u
n
t
和
m
o
u
n
t
e
d
钩
子
函
数
间
的
生
命
周
期
可
以
看
到
此
时
是
给
v
u
e
实
例
对
象
添
加
mount(el)。 beforeMount和mounted 钩子函数间的生命周期 可以看到此时是给vue实例对象添加
mount(el)。beforeMount和mounted钩子函数间的生命周期可以看到此时是给vue实例对象添加el成员,并且替换掉挂在的DOM元素。因为在之前console中打印的结果可以看到beforeMount之前el上还是undefined。
mounted
在mounted之前h1中还是通过{{message}}进行占位的,因为此时还有挂在到页面上,还是JavaScript中的虚拟DOM形式存在的。在mounted之后可以看到h1中的内容发生了变化。
beforeUpdate钩子函数和updated钩子函数间的生命周期
当vue发现data中的数据发生了改变,会触发对应组件的重新渲染,先后调用beforeUpdate和updated钩子函数。
beforeDestroy和destroyed钩子函数间的生命周期
beforeDestroy钩子函数在实例销毁之前调用。在这一步,实例仍然完全可用。
destroyed钩子函数在Vue 实例销毁后调用。调用后,Vue 实例指示的所有东西都会解绑定,所有的事件监听器会被移除,所有的子实例也会被销毁。