Vue学习笔记

(一)什么是MVVM

是Model-View-ViewModel 的缩写,由 Model,View,ViewModel 三部分构成,Model 层代表数据模型,也可以在Model中定义数据修改和操作的业务逻辑;View 代表UI 组件,它负责将数据模型转化成UI 展现出来,ViewModel 是一个同步View 和 Model的对象。它是一种基于前端开发的架构模式,其核心是提供对View 和 ViewModel 的双向数据绑定,这使得ViewModel 的状态改变可以自动传递给 View,即所谓的数据双向绑定。

(二)Vue数据双向绑定原理

Vue实现数据双向绑定的原理就是用Object.defineproperty()重新定义(set方法)对象设置属性值和(get方法)获取属性值的操纵来实现的。

通过数据劫持和发布-订阅者功能来实现数据双向绑定

实现步骤:

(1)实现一个监听者Oberver来劫持并监听所有的属性,一旦有属性发生变化就通知订阅者

(2)实现一个订阅者watcher来接受属性变化的通知并执行相应的方法,从而更新视图

(3)实现一个解析器compile,可以扫描和解析每个节点的相关指令,并根据初始化模板数据以及初始化相对应的订阅者

(三)Vue生命周期函数

Vue的生命周期钩子函数:就是指在一个组件从创建到销毁的过程自动执行的函数,包含组件的变化。可以分为:创建、挂载、更新、销毁四个模块。在组件的整个生命周期内,钩子函数都是可被自动调用的,且生命周期函数的执行顺序与书写的顺序无关。

        

(四)VueX状态管理内容

(1)state:存储状态(变量)。

(2)getters:对数据获取之前的再次编译,可以理解为state的计算属性。

(3)mutations:修改状态,并且是同步的。在组件中使用$store.commit('',params)。

(4)actions:异步操作。在组件中使用是$store.dispath('')。

(5)modules:store的子模块,为了开发大型项目,方便状态管理而使用的。

(五)VueX中actions和mutations的区别

actions:

(1)用于通过提交mutation改变数据

(2)会默认将自身封装为一个Promise

(3)可以包含任意的异步操作

mutations:

(1)通过提交commit改变数据

(2)只是一个单纯的函数

(3)不要使用异步操作,异步操作会导致变量不能追踪

(六)import {} 和 import {} from {}的区别

使用export命令定义了模块的对外接口以后,其他 JS 文件就可以通过import命令加载这个模块。

import后面的from指定模块文件的位置,可以是相对路径,也可以是绝对路径,.js后缀可以省略。如果只是模块名,不带有路径,那么必须有配置文件,告诉 JavaScript 引擎该模块的位置。

import语句会执行所加载的模块,因此可以有import 'lodash';的写法。此代码仅仅执行lodash模块,但是不输入任何值。

如果多次重复执行同一句import语句,那么只会执行一次,而不会执行多次。

(七)Mockjs

Mock.mock(url,‘post’ function(options))

有时候需要根据不同的请求参数来返回不同的内容,需要从function中拿数据,参数从哪里获取要根据实际情况来:

如果是GET请求,那么要从options.url里面拿,然后自己解析出来;
如果是普通的POST请求,那么要从options.body里面拿,然后自己解析;
如果参数是JSON格式并且是POST,那么要从options.body里面拿,然后JSON.parse()再获取;

项目源代码:https://github.com/haidilaohotpot/ffcs/tree/master/%E8%AF%BE%E9%A2%98%E5%9B%9B

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wonder4work

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值