一些突然想起来觉得应该记下来的点

123 阅读3分钟
  • 认识下vue.js **vue是一个渐进式的框架,意味着可以将它作为自己应用的一部分嵌入进来,也可以整个项目整体都使用vue框架,将vue核心库和生态环境比如vuerouter、vuex等全家桶引入项目;vue也有很多自己的特点,比如解耦视图和数据、可复用的组件、状态管理、路由、虚拟dom等
  • js new究竟做了什么 (1) 创建一个新对象; (2) 将构造函数的作用域赋给新对象(因此 this 就指向了这个新对象) ; (3) 执行构造函数中的代码(为这个新对象添加属性) ; (4) 返回新对象
  • vue 组件中的 data 为什么必须是函数 在组件中,data必须是一个函数,因为每一个 vue 组件都是一个 vue 实例,通过 new Vue() 实例化,引用同一个对象,如果 data 直接是一个对象的话,那么一旦修改其中一个组件的数据,其他组件相同数据就会被改变,而 data 是函数的话,每个 vue 组件的 data 都因为函数有了自己的作用域,互不干扰。
  • vue的计算属性computed 当某些情况data里数据需要某种转换再显示或者需要多个数据结合起来再来显示,这时候就需要vue的computed来实现了
    computed与methods不同于,vue内部对computed做了缓存机制,对应data没有发生变化的时候computed仍会return原来的值,而methods只是函数 每调用一次都会执行一次
  • 关于es6 const定义 当使用const定义标识符的时候 必须赋值
    const指向的对象不可以修改,但是对象的属性可以修改
  • 关于es6 对象增强写法 关于对象的属性和方法es6的增强写法都更加方便简洁,同时js是没有做类型检测的,Typescript可以做到对类型的检测
let obj ={
	name,
    age,
    height
}
  • 关于vue虚拟dom vnode主要是将新旧虚拟节点进行差异对比,然后根据对比结果进行DOM操作来更新视图
    key 的特殊 attribute 主要用在 Vue 的虚拟 DOM 算法,在新旧 nodes 对比时辨识 VNodes。如果不使用 key,Vue 会使用一种最大限度减少动态元素并且尽可能的尝试就地修改/复用相同类型元素的算法。而使用 key 时,它会基于 key 的变化重新排列元素顺序,并且会移除 key 不存在的元素。有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误。

  • v-model原理 v-model等同于v-bind绑定一个value值,v-on给元素绑定一个input事件

  • vue组件使用过程 1、创建组件构造器对象;2注册组件;3、使用组件

  • 父组件向子组件传递数据 1、通过props传递数据;2、通过事件向父组件发送消息 image.png 注意:props的默认值属性default,如果是对象或者数组时,默认值必须写成对象形式

//错误的
props:{
   aaa:{
       type:Array,
       default:[]
   }
}
//正确的
props:{
   aaa:{
       type:Array,
       default(){
           return []
       }
   }
}
  • 关于props的大小写 HTML 中的 attribute 名是大小写不敏感的,所以浏览器会把所有大写字符解释为小写字符。这意味着当你使用 DOM 中的模板时,camelCase (驼峰命名法) 的 prop 名需要使用其等价的 kebab-case (短横线分隔命名) 命名:

  • 关于vue父子组件的相互访问 1父组件访问子组件:childrenchildren、refs 2子组件访问父组件:parentparent、root

  • 关于插槽slot

image.png