热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

开发笔记:VUEX

本文由编程笔记#小编为大家整理,主要介绍了VUEX相关的知识,希望对你有一定的参考价值。
本文由编程笔记#小编为大家整理,主要介绍了VUEX相关的知识,希望对你有一定的参考价值。

技术图片

 

 

1. VUEX是什么?概念?

技术图片

 

2. 使用VUEX状态管理的好处

技术图片

 

 3. 什么样的数据适合存储到VUEX中

一般情况下,只有组件之间共享的数据, 才有必要存储到VUEX中;对于组件中的私有数据,依旧存储在组件自身的data当中

4. 安装VUEX


npm install vuex --save

导入vuex

import VueX from vuex
Vue.use(VueX)


 5. 将Store实例挂载到vue实例中

技术图片

 

 6. 使用示例

main.js  引入store

技术图片

 

 store.js

技术图片

 

 

访问state第一种方式


技术图片技术图片

<template>
<div id="app">
<div><img src="./assets/logo.png">div>
<div>
<my-add>my-add>
<my-sub>my-sub>
div>

div>
template>
<script>
import Add from
"./components/Add";
import Subtraction from
"./components/Subtraction";
export
default {
name:
App,
components:{
"my-add": Add, // 别名, 自定义组件
"my-sub": Subtraction, // 别名
},
methods:{
}
}
script>
<style>
#app
{
font-family
: ‘Avenir‘, Helvetica, Arial, sans-serif;
-webkit-font-smoothing
: antialiased;
-moz-osx-font-smoothing
: grayscale;
text-align
: center;
color
: #2c3e50;
margin-top
: 60px;
}
style>


App.vue

 

技术图片技术图片

import Vue from ‘vue‘
import VueX from ‘vuex‘
Vue.use(VueX)
export default new VueX.Store({
state: {
count: 2,
},
mutations: {
},
actions: {
}
})


store.js

 

技术图片技术图片

<template>
<div id="add">
<div>最新的count值是: {{this.$store.state.count}}div>
<button > + button>
div>
template>
<script>
export
default {
data(){
return {
add_value:
0
}
},
name:
"Add",
}
script>
<style scoped>
style>


Add.vue

 

访问state第二种方式

技术图片

 

 代码

技术图片技术图片

// The Vue build version to load with the `import` command
// (runtime-only or standalone) has been set in webpack.base.conf with an alias.
import Vue from ‘vue‘
import App from ‘./App‘
import router from ‘./router‘
import store from "./store";
Vue.config.productiOnTip= false
// 令牌
// d5pvv6omk5rgio0tsh3m4xssynwvii45d5ie1f7n15zzt99q
/* eslint-disable no-new */
new Vue({
el: ‘#app‘,
router,
components: { App },
template: ‘
<App/>‘,
store,
})


main.js

 

技术图片技术图片

<template>
<div id="app">
<div><img src="./assets/logo.png">div>
<div>
<my-add>my-add>
<my-sub>my-sub>
div>

div>
template>
<script>
import Add from
"./components/Add";
import Subtraction from
"./components/Subtraction";
export
default {
name:
App,
components:{
"my-add": Add, // 别名, 自定义组件
"my-sub": Subtraction, // 别名
},
methods:{
}
}
script>
<style>
#app
{
font-family
: ‘Avenir‘, Helvetica, Arial, sans-serif;
-webkit-font-smoothing
: antialiased;
-moz-osx-font-smoothing
: grayscale;
text-align
: center;
color
: #2c3e50;
margin-top
: 60px;
}
style>


App.vue

 

技术图片技术图片

<template>
<div id="sub">
<div>最新的count值是: {{count}}div>
<button > - button>
div>
template>
<script>
import { mapState } from
vuex
export
default {
name:
"Subtraction",
computed: {
...mapState([
"count"]) // ...的作用是将全局数据映射到这个模块当中的一个计算属性
}
}
script>
<style scoped>
style>


Substraction.vue

 

技术图片技术图片

import Vue from ‘vue‘
import VueX from ‘vuex‘
Vue.use(VueX)
export default new VueX.Store({
state: {
count: 2,
},
mutations: {
},
actions: {
}
})


store.js

 

Mutation -- 变更store的数据

错误做法,不允许的操作, 不合法不安全,为什么,因为我不知道是谁操作的

1. 只能通过Mutation来操作store数据,不能直接操作store数据

2. 操作虽然有一些繁琐,但是可以集中监控几种数据的变化

下面代码为错误代码示例

技术图片

 

 

 正确代码示例

技术图片

 

 

 

代码:

技术图片技术图片

<template>
<div id="app">
<div><img src="./assets/logo.png">div>
<div>
<my-add>my-add>
<my-sub>my-sub>
div>

div>
template>
<script>
import Add from
"./components/Add";
import Subtraction from
"./components/Subtraction";
export
default {
name:
App,
components:{
"my-add": Add, // 别名, 自定义组件
"my-sub": Subtraction, // 别名
},
methods:{
}
}
script>
<style>
#app
{
font-family
: ‘Avenir‘, Helvetica, Arial, sans-serif;
-webkit-font-smoothing
: antialiased;
-moz-osx-font-smoothing
: grayscale;
text-align
: center;
color
: #2c3e50;
margin-top
: 60px;
}
style>


App.vue

 

技术图片技术图片

<template>
<div id="add">
<div>最新的count值是: {{this.$store.state.count}}div>
<button @click="btnaddclick"> + button>
div>
template>
<script>
export
default {
name:
"Add",
methods:{
btnaddclick(){
this.$store.commit("add")
},
}
}
script>
<style scoped>
style>


Add.vue

 

技术图片技术图片

import Vue from ‘vue‘
import VueX from ‘vuex‘
Vue.use(VueX)
export default new VueX.Store({
state: {
count: 2
},
mutations: {
add(state){
state.count += 1
}
},
actions: {
}
})


store.js

 

Mutation传参

技术图片

 

 

 

技术图片技术图片

<template>
<div id="add">
<div>最新的count值是: {{this.$store.state.count}}div>
<button @click="btnaddclick"> + button>
<button @click="btnaddclick2"> + N button>
div>
template>
<script>
export
default {
name:
"Add",
methods:{
btnaddclick(){
this.$store.commit("add")
},
btnaddclick2(){
this.$store.commit("add2", 2)
}
}
}
script>
<style scoped>
style>


Add.vue

技术图片技术图片

import Vue from ‘vue‘
import VueX from ‘vuex‘
Vue.use(VueX)
export default new VueX.Store({
state: {
count: 2
},
mutations: {
add(state){
state.count += 1
},
add2(state, step){
state.count += step
},
},
actions: {
}
})


store.js

 

触发Mutation的第二种方法

技术图片

 


推荐阅读
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • Java学习笔记之面向对象编程(OOP)
    本文介绍了Java学习笔记中的面向对象编程(OOP)内容,包括OOP的三大特性(封装、继承、多态)和五大原则(单一职责原则、开放封闭原则、里式替换原则、依赖倒置原则)。通过学习OOP,可以提高代码复用性、拓展性和安全性。 ... [详细]
  • Go Cobra命令行工具入门教程
    本文介绍了Go语言实现的命令行工具Cobra的基本概念、安装方法和入门实践。Cobra被广泛应用于各种项目中,如Kubernetes、Hugo和Github CLI等。通过使用Cobra,我们可以快速创建命令行工具,适用于写测试脚本和各种服务的Admin CLI。文章还通过一个简单的demo演示了Cobra的使用方法。 ... [详细]
  • RouterOS 5.16软路由安装图解教程
    本文介绍了如何安装RouterOS 5.16软路由系统,包括系统要求、安装步骤和登录方式。同时提供了详细的图解教程,方便读者进行操作。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Nginx使用(server参数配置)
    本文介绍了Nginx的使用,重点讲解了server参数配置,包括端口号、主机名、根目录等内容。同时,还介绍了Nginx的反向代理功能。 ... [详细]
  • Linux重启网络命令实例及关机和重启示例教程
    本文介绍了Linux系统中重启网络命令的实例,以及使用不同方式关机和重启系统的示例教程。包括使用图形界面和控制台访问系统的方法,以及使用shutdown命令进行系统关机和重启的句法和用法。 ... [详细]
  • 本文介绍了一个Java猜拳小游戏的代码,通过使用Scanner类获取用户输入的拳的数字,并随机生成计算机的拳,然后判断胜负。该游戏可以选择剪刀、石头、布三种拳,通过比较两者的拳来决定胜负。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • 本文介绍了OC学习笔记中的@property和@synthesize,包括属性的定义和合成的使用方法。通过示例代码详细讲解了@property和@synthesize的作用和用法。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 配置IPv4静态路由实现企业网内不同网段用户互访
    本文介绍了通过配置IPv4静态路由实现企业网内不同网段用户互访的方法。首先需要配置接口的链路层协议参数和IP地址,使相邻节点网络层可达。然后按照静态路由组网图的操作步骤,配置静态路由。这样任意两台主机之间都能够互通。 ... [详细]
author-avatar
杨祐书2257
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有