vuex保存用户信息_10分钟入门Vuex

ffe35bf6d414b62dcb1cf785f65e529e.png

通过本文你将:

1.明白什么是Vuex.

2.明白为什么要用Vuex.

3.能跑一个Vuex的例子。

4.了解相关概念,面试的时候能说出一个所以然。

5.项目中用Vuex知道该学什么东西。

那我们,走起:

1.什么是Vuex?

Vuex 是一个专为 Vue.js 应用程序开发的状态管理模式。它采用集中式存储管理应用的所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。

翻译成人话,Vuex是vuejs的官方管理数据状态的库。

官网:https://vuex.vuejs.org/zh/

2.为什么用它?

举个例子,

你用vue开发一个app:

62f59b9b2f3c59361103fcfb1bb64d08.png

不同的组件,你都需要用户信息,还有一些公用的数据,你每一个组件请求一遍浪费性能,你不请求组件间属性和参数传来传去,你自己维护很墨迹,麻烦也容易出错。好吧,你觉得干不好或者麻烦,那么Vuex帮你解决这个事儿。

这个没什么复杂的,大学图书馆,自助借还书,每次都把书乱放,维护很麻烦,怎么办,都还给图书馆管理员,图书馆管理员统一管理调配。ok,图书管理员就是Vuex.

3.怎么用?

1.安装

npm 

2.初始化store.js,

(vue-cli安装项目目录不墨迹),

一般放到src/store/store.js下面,初始化代码,相当于搞了一个图书管理员。

import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
export const store = new Vuex.Store({})

3.写需要的组件

创建一个Form.vue组件,怼下面的内容,

<template>
    <div>
        <label for="dabinge666">你喜欢彬哥哪一点</label>
        <input name="dabinge666">
    </div>
</template>

创建一个展示组件Display.vue

<template>
    <div>
        <p>我喜欢彬哥:</p>
    </div>
</template>

打开App.vue,删掉没用的东西,直接怼下面的代码,

<template>
  <div id="app">
    <Form/>
    <Display/>
  </div>
</template>
​
<script>
import Form from './components/Form'
import Display from './components/Display'
​
export default {
  name: 'App',
  components: {
    Form,
    Display
  }
}
</script>

到这里,架子就搭好了。

4.增加各种需要的东西,

import Vue from 'vue'
import Vuex from 'vuex'
​
Vue.use(Vuex)
​
export const store = new Vuex.Store({
  state: {
    love: ''
  },
  mutations: {
    change(state, love) {
      state.love = love
    }
  },
  getters: {
    love: state => state.love
  }
})

这里注意,你不用去管

d219230c63a31a98f697e57cc9aeaf4e.png

这些破概念,你就照猫画虎,我写啥你抄啥,抄几遍,你就知道数据流向了。你不知道鼠标叫mouse,也不影响你玩电脑。

love就是你喜欢我的东西,相当于一个变量,被传来传去的一会。

好了,就这么简单可以用了。

4.使用Vuex

打开main.js,导入,然后用。

import { store } from './store/store'
​
new Vue({
  el: '#app',
  store,
  components: { App },
  template: '<App/>'
})

到这里就相当于图书管理员上岗等着学生来还书了,来啊,互相伤害啊!

5.我来了……

既然搞数据,躲不开刚才我们的搞的表单组件,打开Form.vue

<template>
  <div>
    <label for="dabinge666">你喜欢彬哥哪一点?</label>
      //输入:离我远一点
    <input @input="changed" name="dabinge666">
  </div>
</template>
​
<script>
export default {
  methods: {
    changed: function(event) {
        //大声喊出你的对彬哥的爱,让整个图书馆都听到
      this.$store.commit('change', event.target.value)
    }
  }
}
</script>
​

打开,Display.vue

<template>
  <div>
    <p>我喜欢彬哥: {{ $store.getters.love }}</p>
  </div>
</template>

漂亮,如果你运行成功,你就会发现,页面里面出现,我喜欢彬哥:离我远一点。

告辞!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值