vue笔记分享(2)

42 阅读2分钟

携手创作,共同成长!这是我参与「掘金日新计划 · 8 月更文挑战」的第30天,点击查看活动详情 >


1、 let var const 的区别

1)  var全局作用域、函数作用域,存在变量提升,函数外不可读取函数内的变量

2)  Let块级作用域,不存在变量提升

3)   Const块级作用域,不存在变量提升,用来定义常量,不可修改,使用时初始化

4)   const定义对象,对象的属性值可被修改,因为对象是引用类型的,变量中保存的仅是对象的指针;const仅保证指针不发生改变,而修改对象的属性不会改变对象的指针,所以不会报错

2、 vue 的响应式原理

1)   在生成vue实例的时候,会对传入的data进行遍历,使用object.defineProperty把这些属性转为getter/setter,

2)  每个组件实例都对应有一个watcher实例,在实例渲染时记录这些属性,在setter触发时重新渲染

3)   Vue2无法检测对象的添加和删除

4)   不允许动态添加跟级别的响应式属性,可以使用Vue.set(this.obj, ‘a’, 1)方法向嵌套对象添加响应式属性

3、 vue 组件间的通信方式

1)  父子组件props/emit/emit/parent/ref

2)  emit/emit/on emit触发事件emit触发事件 on 监听事件eventbus

var event = new Vue()//定义一个空的vue实例

Event.$emit(‘m-click’, ‘dianji’);//A

Event.$on(‘m-click), (msg)=>{ //B

this.name=’msg’ 

})

A传值给event,B监听enent的m-click事件,当A触发事件的时候,B就会触发方法替换页面的值

3)  vuex

4、 props 字符串数组形式和对象形式的区别

1)  数组形式:props:[‘name1’,’name2’],可以作为字组件的一个变量使用 2) 对象形式: props:{name:{type:string,default:’value’}},可以规定传输值的数据类型和默认值,但不能作为内部变量使用

5、 this 的理解

1)  this默认情况下指向全局,如果函数被对象调用,则指向此对象,构造函数调用,this指向new出来的新对象

2)  箭头函数中,箭头函数没有自己的this,指向定义他时所处的对象

如果有哪里描述不准确或者有问题,欢迎大佬指正!
(≖ᴗ≖)✧