MVVM开发思想是什么
1.MVVM是model-view-ViewModel的简写
model[模型]指的是后端传递的数据
view[视图]指的是用户看到的界面
viewModel[视图模型]指的是连接view和model的桥梁
2.MVVM最大的特点就是视图和模型的相互通信与转换
3.他有两个方向
3.1,将模型转换成视图
实现方式:数据的双向绑定,就是后端传递的数据转换成用户所看到的界面
3.2,将视图装换成模型
实现方式:dom监听事件.将看到的页面转换成后端的数据
总结:
由以上两个方向都实现,就称之为数据的双向绑定
MVVM框架思想最据代表性的框架就是vue,那么什么是vue?
vue介绍
vue就是基于MVVM开发思想模式实现的一套框架,两大核心功能即使
1.数据双向绑定 2.组件化开发
MVC思想
1.MVC是model-view-controller的缩写
1.1:M,V与MVVM中的m和v的意思一样
1.2c是指controller英文翻译是控制器的意思,在这里指的是实现业务的逻辑
2.MVC是单向通信,也就是从view跟Model,使用MVC思想的目的就是把M和v代码分离,后期的维护更加方便
vue的生命周期
含义:指vue组件从创建到销毁的过程叫做vue的生命周期
作用:可以更好的实现组件中的业务逻辑
8个阶段:
分类: 创建前后,渲染(挂载)前后,更新(运行)前后,销毁前后
1.vue实例创建前后(create)
1.前: beforeCreate //创建vue实例前的钩子函数
2.后: created //创建实例完成后的钩子函数
2.渲染/编译前后(mounte)
1.前: beforeMount //开始编译生成的html到对应位置时的钩子函数
2.后: mounted //编译好html挂载到页面中完成后执行的钩子函数
3.用途:由于ajax是异步请求,有可能出现获取到数据的时候html页面还没有渲染成功的情况,可以
把ajax请求获取数据的操作写在mounted函数中进行数据的初始化
3.更新前后(update)
1.前: beforeUpdate //实时监控data数据变化,随时去更新dom
2.后: updated //data数据变化后,或dom变化后执行的钩子函数
4.销毁前后(destroy)
1.前: beforeDestroy //实例销毁前执行的钩子函数
2.后: destroy //实例销毁后执行的钩子函数
组件化与模块化的区别
组件化: 把一个完整的功能分装成一个组件,叫做组件化
特点: 1.代码的重用
2.高重用,低耦合
模块化: 把同一类代码写到一起,例如,发送ajax请求,设置路由规则分别写在两个文件夹中
特点: 1.代码的封装
2.高内聚,低耦合
备注:
内聚:一个模块内的代码之间的紧密程度叫做内聚
耦合:多个模块之间的依赖关系叫做耦合
vuex
理解store:
store就是存储数据和管理数据方法的仓库,实现方式是将数据和方法已对象形式传入其实例中。要注
意一个应用或是项目中只能存在一个`Store`实例!
简单的说就是vuex的实例
含义:
vuex是vue.js应用程序用的**状态管理模式**,他采用了集中式存储管理应用程序中所有的组件状态,
使用场景:
不适用:小型简单的应用,用vuex相对繁琐,更适合用store模式
适用:中大型单页面应用,首先大型的单页面应用,会有很多相同的功能及代码,会考虑到如何把组件的共享状
态抽取出来,以一个全局的单例模式管理,不管在哪个组件,都能获取状态并触发行为.
特点:
他可以管理复杂应用程序的数据状态,比如兄弟组件的通信,多层嵌套的组件之间的传值
vuex的5大核心概念
1.state
vuex中的公共状态,可以看做所有组件中的data,用于保存组件中的公共数据
2.getters
可以理解为组件中的computed属性,也就是计算属性,中getters的返回值会根据他的依赖被缓存起来,只有当
依赖值发生改变时才会被从新计算
3.mutations
可以理解为store中的methods,mutations对象存储着更改数据的回调函数,该函数名官方规定叫type,第一个
参数是state,第二个参数是payload,也就是自定义参数
4.actions
actions类似于mutations,不同在于
☞actions提交的是mutations,而不是之间变更状态
☞actions中可以包含异步操作,mutations中绝对不能出现异步操作
☞actions中的回调函数的第一个参数是context,是一个与store实例具有相同属性和方法的对象
5.modules
由于使用单一状态树,应用的所有状态会集中到一个比较大的对象。
当应用变得非常复杂时,store 对象就有可能变得相当臃肿。为了解决以上问题,
Vuex 允许我们将 store 分割成模块(module)。每个模块拥有自己的 state、
mutation、action、getter、甚至是嵌套子模块——从上至下进行同样方式的分割