JavaEE-微服务-Vuex

这篇具有很好参考价值的文章主要介绍了JavaEE-微服务-Vuex。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Vuex

2.1 什么是Vuex

  • Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式

  • Vuex在组件之间共享数据。

JavaEE-微服务-Vuex,java-ee,android,flutter,vue
2.2 使用 vue cli 构建项目
JavaEE-微服务-Vuex,java-ee,android,flutter,vue

2.3 入门案例

2.3.1 定义数据

export default new Vuex.Store({
 state: { // 状态区域(定义变量区域)
  user: '',
  token: ''
 },

 mutations: { //修改变量
  setUser(state, value) {
   state.user = value
  },
  setToken(state, value){
   state.token = value
  }
 },

JavaEE-微服务-Vuex,java-ee,android,flutter,vue

2.3.2 调用数据

  • 获得数据:调用state区域,和计算属性结合,使数据可以实时更新
<template>
  <div>
   {{token}}
 </div>
</template>

<script>
export default {
  computed: { // 计算属性
     token() {
       return this.$store.state.token
     }
  },
}

</script>

<style>
</style>
  • 设置数据:调用mutations区域
<template>
  <div>
   {{token}} <br/>
   <input type="button" value="切换数据" @click="setToken('tom')">
 </div>
</template>

<script>
export default {
  computed: { // 计算属性
     token() {
       return this.$store.state.token
     }
  },
  methods: {
     setToken(value) {
       this.$store.commit('setToken',value)
     }
  },
}
</script>

<style>

</style>

2.4 总结

属性 描述 实例
state 用于定义对象的状态 (需要共享的数据)
获得方式:
this.$store.state.username
state: {
username: ‘jack’,
password: ‘6666’
}
getters vuex的计算属性,获得依赖的缓存数据,只有依赖的值发生改变,才重新计算
获得方式:
this.$store.getters.getUsername
getters: {
getUsername(state) {
return state.username
}
}
mutations 唯一可以修改对象状态的方式
修改方式
this.$store.commit(‘setUsername’,‘肉丝’)
mutations: {
setUsername(state,value){
state.username = value
}
}
actions 可以执行mutations,action运行有异步操作
执行方式:
this.$store.dispatch(‘uesrnameAction’,‘肉丝666’)
actions: { //事件区域
uesrnameAction(context,value){
context.commit(‘setUsername’,value) }
}
module vuex的模块,允许有独立的以上4个属性

2.5 高级:全局引用(映射)

  • 在vuex中提供一组map用于简化vuex的操作

2.5.1 入门

  • 步骤一:导入对应map
//1 导入需要map
import {mapState} from 'vuex'
  • 步骤二:获得数据
<template>
  <div>
   {{token}} <br/>
   {{user}} <br/>
 </div>
</template>

<script>
//1 导入需要map
import {mapState} from 'vuex'
/*
 1. mapState() vuex中定义函数
 2. 通过数组参数,确定从vuex中获得哪些变量的值
   mapState(['token','user'])
   此函数返回如下:
   {
     token() {
       return this.$store.state.token
     },
     user() {
       return this.$store.state.user
     }
   }
 3. { { } } 此语法是错误,需要将 mapState函数 返回对象抽取,即只要内容
   ...mapState(['token','user'])
   返回的内容如下:
   token() {
     return this.$store.state.token
   },
   user() {
     return this.$store.state.user
   }
*/
export default {
  computed: {
     ...mapState(['token','user'])
  },
}
</script>

<style>

</style>
  • 步骤三:设置数据
<template>
  <div>
   {{token}} <br/>
   {{user}} <br/>
   <input type="button" value="切换数据" @click="setToken('tom')">
 </div>
</template>

<script>
//1 导入需要map
import {mapState,mapMutations} from 'vuex'
export default {
  computed: {
     ...mapState(['token','user'])
  },
  methods: {
     ...mapMutations(['setToken'])
  },
}

</script>

<style>

</style>

2.5.2 完整参考

  • 编写store.js
import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
 state: {        //存储数据
  name : 'jack'
 },
 mutations: {      //修改数据
  changeName(state , value){
   state.name = value
  }
 },
 actions: {       //触发mutation
  changeNameFn(content, value){
   content.commit("changeName", value);
  }
 },

 getters: {        //获得数据
  getName: state => state.name,
  getNameLen : (state, getters) => getters.getName.length
 }
})
  • About.vue
<template>
  <div class="about">
  	<h1>This is an about page</h1>
  	<!-- 1.4 显示改变后的数据 -->
  	{{showName}} <br/>
  	<!-- 2.2 显示计算属性映射到的“属性别名” -->
  	{{showName2}} <br/>
  	<!-- 3.2 显示计算属性映射到的“默认属性别名” -->
  	{{name}} <br/>
  	<input type="text" placeholder="请输入存储的数据" v-model="username" value="" ><br/>
  	<input type="button" value="点击切换" @click="nameclick" >
 </div>
</template>

<script>

import {mapState,mapMutations,mapActions,mapGetters} from 'vuex'
export default {
 data() {
  return {
   username : ""     //绑定数据
  }
 },

 methods: {
  nameclick(){
   //this.$store.commit("changeName", this.username );  //提交数据,用于修改vuex中的数据
   //this.$store.dispatch("changeNameFn" , this.username);
   this.changeName(this.username);  //1.2 执行映射后的新函数 this.changeName()
   console.info(this.$store.getters.getName)
  },
  ...mapMutations(['changeName'])   //1.1 将 `this.changeName()` 映射为 `this.$store.commit('changeName')`
 },

 computed: {
  showName(){
   return this.$store.state.name;   //1.3 显示vuex中的数据,通过“计算属性”实时显示
  },
  ...mapState({
   showName2 : state => state.name  //2.1 将 `this.showName2` 映射为 `this.$store.state.name`
  }),
  ...mapState(['name']) ,        //3.1 将 `this.name` 映射为 `this.$store.state.name`
  ...mapGetters(['getName'])      //4.1 将 `this.getName` 映射为 `this.$store.getters.getName`

 },

}

</script>

2.6 流程总结

  • 步骤一:package.json 确定vuex版本 (自动生成)

    "vuex": "^3.0.1"
    

JavaEE-微服务-Vuex,java-ee,android,flutter,vue
步骤二:vuex配置文件(src/store.js) (自动生成)

JavaEE-微服务-Vuex,java-ee,android,flutter,vue文章来源地址https://www.toymoban.com/news/detail-820144.html

import Vue from 'vue'
import Vuex from 'vuex'

Vue.use(Vuex)

export default new Vuex.Store({
 state: {           //数据存储区域
 },

 mutations: {         //函数声明区域(修改数据)
 },

 actions: {          //事件区域(执行函数)
 }
})
  • 步骤三:main.js中配置vuex (自动生成)
    JavaEE-微服务-Vuex,java-ee,android,flutter,vue

到了这里,关于JavaEE-微服务-Vuex的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Mac系统配置java、Android_sdk、gradle、maven、ndk、flutter、tomcat环境变量

    搞了三天,终于搞定MAC系统下的各种环境变量了…… 旧版本10.13.6或者更老的MAC系统,只用在.bash_profile文件编辑就行了;新版本10.14.2、10.15.7或者更高的,还要去.zshrc文件加一句source ~/.bash_profile,才能使所有环境永久生效。 打开终端(相当于Windows系统的命令提示符),运行

    2024年02月05日
    浏览(51)
  • J2EE,Java EE,Jakarta EE 命名之间的恩恩怨怨

      简单来说,上面所有的名字指的都是一个东西 Java Platform, Enterprise Edition 上面的几个名词都是下面的内容的简写: J2EE(Java 2 Platform, Enterprise Edition) Java EE (Java Platform, Enterprise Edition) Jakarta EE(Jakarta Enterprise Edition) 上面的排序是按照时间演进来进行排序。   1998年12月,SUN公司发

    2023年04月26日
    浏览(44)
  • 【Java EE】文件操作

    目录 1.认识文件 2.树型结构组织和目录 3.文件路径(Path) 4.其他知识 5.Java中操作文件 5.1File概述 5.1.1属性 5.1.2构造方法 5.1.3方法 5.2代码示例 1.认识文件 我们先来认识狭义的文件(file)。针对1硬盘这种持久化存储的I/O设备,当我们想要进行数据保存时,往往不是保存一个整

    2024年04月22日
    浏览(54)
  • JAVA EE 第一周

    计算机Z20-第1周作业        总分:100分              1 . 单选题 简单 6分 下列选项中,哪些属于网站建设常用技术( )。 A.HTML B.JavaScript C.CSS D.以上都是 2 . 单选题 简单 6分 下列选项中,哪个不是静态网页的文件扩展名( )。 A.xml B.jsp C.htm D.shtml 3 . 单选题 简单 6分

    2024年02月06日
    浏览(38)
  • 【Java EE】@RequestMapping注解

    在Spring MVC 中使⽤ @RequestMapping 来实现 URL 路由映射 ,也就是浏览器连接程序的作⽤ 我们先来看看代码怎么写 创建⼀个 TalkController 类,实现⽤⼾通过浏览器和程序的交互,具体实现代码如下: 这时候我们使用浏览器访问 http://127.0.0.1:8080/hi 就可访问 @RequestMapping 是Spring Web M

    2024年04月09日
    浏览(43)
  • 【Java EE】Spring介绍

    参考资料spring中文文档 Spring是一个JavaEE轻量级的一站式开发框架。 它提供的功能涵盖了JavaEE程序中的表示层,服务层,持久层功能组件。这意味着,单单Spring框架就可以满足整个JavaEE程序的开发。 为了降低Java开发的复杂性,Spring采用了以下4种关键策略: 1、基于POJO的轻量

    2024年02月06日
    浏览(51)
  • 【Java EE】-JavaScript详解

    作者 :学Java的冬瓜 博客主页 :☀冬瓜的主页🌙 专栏 :【JavaEE】 分享 : 且视他人如盏盏鬼火,大胆地去走你的道路。——史铁生《病隙碎笔》 主要内容 :HTML中引入JS的三种方式。JS语法分析,JS是动态弱类型语言,JS中的数组、方法、对象。JSWebAPI学习,选中元素和单击事

    2023年04月25日
    浏览(42)
  • 【Java EE 初阶】文件操作

    目录 1.什么是文件? 1.在cmd中查看指定目录的树形结构语法 2.文件路径 从当前目录开始找到目标程序(一个点) 返回到上一级目录,再找目标程序(两个点) 2.Java中文件操作 1.File概述 1.属性 2. 构造方法 3.常用方法  代码展示: 4.常用方法2 3. 文件内容的读写---数据流 1.I

    2024年02月06日
    浏览(43)
  • 【Java EE初阶十三】网络初识

            网络发展的几个主要时期:         单机时代-局域网时代-广域网时代-移动互联网时代         随着时代的发展,越来越需要计算机之间互相通信,共享软件和数据,即以多个计算机协同工作来完成 业务,就有了网络互连。         网络互连: 将多台计

    2024年02月20日
    浏览(44)
  • 4.3Java EE——一对多查询

    用户与订单关联关系图 ​​​​​​​         与一对一的关联关系相比,接触更多的关联关系是一对多(或多对一)。例如一个用户可以有多个订单,多个订单也可以归一个用户所有。用户和订单的关联关系如图。 一、collection元素         在MyBatis中,通过collect

    2024年02月13日
    浏览(44)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包