VUEX的store用法

2,539 阅读1分钟

重新搭建项目

  • 进入以个文件夹:cd vuewebpackapp
  • 初始化这个项目:vue init webpack vuexapp
  • 一系列的选择确认后
  • 就会创建好文件

在搭建好的环境中操作

父组件传递数据给子组件

  • 在components新建parent.vue(父组件)和一个son.vue子组件;
  • 在父组件内引入子组件import son from './son',并传msg给子组件

image.png

  • 子组件如何接收父组件传递的内容:

image.png

  • helloworld.vue

子组件传数据给父组件

  • 父组件从子组件接收数据,如何设置 image.png
  • 子组件向父组件传递数据
    • 在子组件设置按钮
      image.png

image.png

  • 在父组件里接收 image.png
  • 渲染在页面上

image.png

VUEX的作用?

例如打开淘宝上面有很多不同的界面和组件,但是每一个组件都知道我的登录状态,就是用vuex来实现的

  • 用来管理状态,共享数据,在各个组件之间管理外部状态,如何使用?
    • 第一步:引入vuex,通过use方法使用它;
    • 第二步:创建状态仓库;
    • 第三步:通过this.$store.state.xxx直接拿到需要的数据
//创建状态仓库
var store = new Vuex.Store({
    state:{
    XXX:xxx
    }
})
//直接通过this.$store.xxx拿到全局状态

新建outter.vue

  • outter文件和parent和son文件,没有父子关系,但是又想让他们之间共享数据,就用到vuex文件;
  • 在终端安装:npm i vuex
  • 在main.js中引入Vuex:import Vuex from 'vuex'
  • 接着在main.js中use一下:Vue.use(Vuex)
  • 创建状态仓库 var store = new Vuex.store({ state:{ num:88 } }) image.png
  • 在son.vue文件中如何获取文件?

image.png 把这个计算属性渲染到页面上:

image.png image.png

  • 在父组件中的代码与子组件类似,只是getNum换成getCount
  • 在outter中 也是一样

image.png

三个组件都拿到了Num:88,实现了资源共享。