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、甚至是嵌套子模块——从上至下进行同样方式的分割