【Vue,Java学习笔记在互联网上火了

单界面的状态管理

===========================================================================

在这里插入图片描述

  • State:状态,姑且可以当做就是 data 中的属性

  • View:视图层,可以针对 State 的变化,显示不同的信息

  • Actions:这里的 Actions 主要是用户的各种操作,点击、输入等等,会导致状态的改变

代码示例:

在这里插入图片描述

  • counter 需要某种方式被记录下来,也就是 State

  • counter 目前的值需要被显示在界面中,也就是 View

  • 界面发生某些操作时(如用户点击,或是用户的 input)需要去更新状态,也就是 Actions

多界面状态管理

==========================================================================

Vue 已经实现了单界面的状态管理,但是如果是多个界面呢?

  • 多个界面都依赖同一个状态:一个状态改了,多个界面需要进行更新

  • 不同界面的 Actions 想修改同一个状态

Vuex 背后的思想:

  • 将共享的状态抽取出来,统一进行管理

  • 之后每个视图,需要按照规定好的某种方法,进行访问和修改操作

Vuex 状态管理图例:

在这里插入图片描述

Vuex 基本使用

============================================================================

在 store/index.js 中管理状态:


import { createStore } from "vuex";



export default createStore({

  state: {

    counter: 0

  },

  mutations: {

    increment(state) {

      state.counter++;

    },

    decrement(state) {

      state.counter--;

    }

  },

  actions: {},

  modules: {},

  getters: {},

}); 

在 main.js 中将 store 挂载到 Vue 实例中

在其他 Vue 组件中,通过 this.$store 获取到 store 对象

  • 通过 this.$store.state 来访问状态

  • 通过 this.$store.commit('xxx') 来执行 mutations 中的方法,从而修改状态

为了使 Vuex 可以更明确的追踪状态的变化,不要直接改变 store.state.count 的值,通过 mutations 中的方法来修改 state 中的状态。

State 单一状态树

==============================================================================

如果状态信息是保存到多个 store 对象中的,那么之后的管理和维护等等都会变得特别困难,所以 Vuex 使用了单一状态树来管理应用层级的全部状态、

单一状态树能够让我们以最直接的方式找到某个状态的片段,而且在之后的维护和调试过程中,也可以非常方便的管理和维护。

Getters

==========================================================================

我们需要从 store 中获取一些 state 变异后的状态,比如下面的 store 中:

在这里插入图片描述

获取学生年龄大于20的个数:

  • 在组件中使用 computed

    在这里插入图片描述

  • 使用 Vuex 的 getters:

    在这里插入图片描述

Getters 作为参数和传递参数


如果我们已经有了一个获取所有年龄大于 20 岁学生列表的 getters,那么代码可以这样来写

在这里插入图片描述

getters 默认不能传递参数,如果想要传递参数,需要让 getters 本身返回另一个函数

比如上面的案例中,我们希望根据 ID 获取用户的信息:

在这里插入图片描述

Mutation

===========================================================================

Mutation 状态更新


Vuex 的 store 状态的更新唯一方式:提交 Mutation

Mutation 主要包括两部分:

  • 字符串的事件类型 (type)

  • 一个回调函数 (handler),该回调函数的第一个参数就是 state

mutation 的定义方式:

在这里插入图片描述

通过 mutation 更新:

在这里插入图片描述

Mutation 传递参数


在通过 mutation更 新数据的时候,有时候需要希望携带一些额外的参数

  • 参数被称为 mutation 的 载荷 (Payload)

示例代码:

在这里插入图片描述

多个参数的传递以对象的形式进行,也就是 payload 是一个对象:

在这里插入图片描述

Mutation 提交风格


上面的通过 commit 进行提交是一种普通的方式

Vue 还提供了另外一种风格,它是一个包含 type 属性的对象

在这里插入图片描述

Mutation 中的处理方式是将整个 commit 的对象作为 payload 使用,所以代码没有改变:

在这里插入图片描述

Mutation 常量类型


当项目增大时,Vuex 管理的状态越来越多,需要更新状态的情况越来越多,意味着 Mutation 中的方法越来越多。方法过多,导致使用者需要花费大量的精力去记住这些方法,甚至是多个文件间来回切换,查看方法名称,甚至如果不是复制的时候,可能还会出现写错的情况

在各种 Flux 实现中,一种很常见的方案就是:使用常量替代 Mutation 事件的类型,我们可以将这些常量放在一个单独的文件中,方便管理


创建一个文件:mutation-types.js,并且在其中定义我们的常量

定义常量时可以使用 ES2015 中的风格,使用一个常量来作为函数的名称:

在这里插入图片描述

store 中用常量字符串来定义函数:

在这里插入图片描述

组件中使用常量字符串调用 store 的 mutations 更改 state:

在这里插入图片描述

最后

权威指南-第一本Docker书

引领完成Docker的安装、部署、管理和扩展,让其经历从测试到生产的整个开发生命周期,深入了解Docker适用于什么场景。并且这本Docker的学习权威指南介绍了其组件的基础知识,然后用Docker构建容器和服务来完成各种任务:利用Docker为新项目建立测试环境,演示如何使用持续集成的工作流集成Docker,如何构建应用程序服务和平台,如何使用Docker的API,如何扩展Docker。

总共包含了:简介、安装Docker、Docker入门、使用Docker镜像和仓库、在测试中使用Docker、使用Docker构建服务、使用Fig编配Docke、使用Docker API、获得帮助和对Docker进行改进等9个章节的知识。

image

image

image

image

关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!

如果你也爱了,点击这里免费下载:“K8S+Docker”学习指南

mg-51DrZHRG-1628601121881)]

[外链图片转存中…(img-DcK722BI-1628601121883)]

[外链图片转存中…(img-yy3wmcbo-1628601121885)]

[外链图片转存中…(img-YUrrB9eR-1628601121887)]

关于阿里内部都在强烈推荐使用的“K8S+Docker学习指南”—《深入浅出Kubernetes:理论+实战》、《权威指南-第一本Docker书》,看完之后两个字形容,爱了爱了!

如果你也爱了,点击这里免费下载:“K8S+Docker”学习指南

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值