MVVM
Model View viewModel
Model:就是业务逻辑相关的数据对象
View:就是展现出来的用户界面
ViewModel:职责就是把model对象封装成可以显示和接受输入的界面数据对象;ViewModel就是View与Model的连接器,View与Model通过ViewModel实现双向绑定
断言
编程过程中,捕获布尔表达式中的假设
深拷贝/浅拷贝
深拷贝: 真正获取一个对象的复制实体,而不是引用
改变了其中任意一个,另一个不会发生改变
增加了一个指针并且申请了一个新的内存,使这个增加的指针指向这个新的内存
浅拷贝: 引用一个对象
改变了其中任意一个,另一个跟随发生变化
只是增加了一个指针指向已存在的内存地址
VDOM 虚拟DOM Virtual DOM
初始渲染时,首先将数据渲染为 Virtual DOM,然后由 Virtual DOM 生成 DOM。
数据更新时,渲染得到新的 Virtual DOM,与上一次得到的 Virtual DOM 进行 diff,得到所有需要在 DOM 上进行的变更,然后在 patch 过程中应用到 DOM 上实现UI的同步更新。
优点:在有多个节点需要刷新的情况下,由于通过查找VDOM的diff来一次更新,即只需要操作一次DOM。
js 事件冒泡
事件冒泡 :当一个元素接收到事件的时候 会把他接收到的事件传给自己的父级,一直到window 。
就是两个父子关系的div,然后分别加了点击事件,当我们在div2里面点击的时候,会发现弹出了一次1,接着又弹出了2,这说明点击的时候,不仅div2的事件被触发了,它的父级的点击事件也触发了,这种现象就叫做冒泡
<template>
<div class="hello">
<div @click="divClickTwo()">
李克成
<div @click="divClickOne()">
张三丰
</div>
</div>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
}
},
methods: {
divClickOne () {
console.log(1)
},
divClickTwo () {
console.log(2)
}
},
computed: {
},
async created () {
}
}
</script>
<!-- Add "scoped" attribute to limit CSS to this component only -->
<style scoped>
</style>
盒子模型
css中对于一个html元素从内至外的content/padding/border/margin等所占的空间