VUE
vue是构建数据驱动的web应用开发框架
是一套用于构建用户界面的渐进式框架
被设计为可以自底向上逐层应用
vue的核心库只关注视图层
便于与第三方库或既有项目整合
一、开发规范
工作目录规范:
页面存放目录:文件夹命名都以首字母大写
静态文件存放目录:所有文件及文件夹命名都为小写
vue,react 利用脚手架生产项目
开发过程中,组件的首字母大写
代码命名规范:
BEM命名:核心思想是将页面拆分成一个个独立的富有予以的块(blocks),从而使得团队在开发复杂项目的时候可以高效,并且有利于代码复用,容易维护,和oop相似
BEM是块block,元素element,修饰符modifier的缩写,利用不同的区块,功能以及样式来给元素命名,这三部分使用__和–连接(使用两个中划线是为了留下用于块的命名)
.block 代表了更高级别的抽象或组件
.block__element() 代表block的后代,用于形成一个完整的block的整体
.block–modifier() 代表block的不同状态或不同版本
oocss
oocss不是框架,不是技术,不是语言,只是一种书写方法,核心就是用最简单的方式编写最整洁,最干净的css代码,使代码更有重用性,可维护性,可扩展性(把原本写在一起的样式,拆开多个clss写,提高可复用性)
Eslint
eslint - js书写规范
可代码检测是否符合规范
ESlint可以再编码过程中发现问题,并且可以自己创建检测规则,保持代码编写风格一致性
安装:
cnpm i eslint -g
cnpm i eslint-plugin-vue -g
用命令新建eslintrc.js文件
eslint --init
语义化标签
元素周期表
、、、、、
二、vue实现数据绑定的原理
vue最独特特定之一,是其非侵入性的响应式系统,数据模型只是普通的js对象
当进行修改时,视图会进行更新
使状态管理非常 简单直接
vue中数据双向绑定的体现
??????
vue数据双向绑定原理
vue数据双向绑定是通过数据劫持结合发布者-订阅者模式的方式来实现的
数据劫持的实现方式Object.defineProperty():
当把一个普通的js对象传入vue实例作为data选项,vue将遍历此对象所有属性,然后使用Object.defineProperty()把这些属性全部转为getter/setter
原理:
1.实现一个监听器Observer,用来劫持并监听所有属性,如果有变动的,就通知订阅者。
2.实现一个订阅者Watcher,可以收到属性的变化通知并执行相应的函数,从而更新视图。
3.实现一个解析器Compile,可以扫描和解析每个节点的相关指令,并根据初始化模板数据以及初始化相应的订阅器。