(十六)硅谷外卖-使用 vuex 管理状态

一、下载vuex

npm install --save vuex

二、定义state

store/state.js

export default {
    latitude: 40.10038, // 纬度
    longitude: 116.36867, // 经度
    address: {}, // 地址信息对象
    categorys: [], // 分类数组
    shops: [],
}

三、定义mutation-types

store/mutation-types.js

export const RECEIVE_ADDRESS = ‘receive_address‘ // 接收地址信息
export const RECEIVE_CATEGORYS = ‘receive_categorys‘ // 接收分类数组
export const RECEIVE_SHOPS = ‘receive_shops‘ // 接收商家数组

四、定义mutations

store/mutations.js

import {RECEIVE_ADDRESS, RECEIVE_SHOPS, RECEIVE_CATEGORYS} from "./mutation-types"

export default {
    [RECEIVE_ADDRESS](state, {address}) {
        state.address = address
    },
    [RECEIVE_SHOPS](state, {categorys}) {
        state.categorys = categorys
    },
    [RECEIVE_CATEGORYS](state, {shops}) {
        state.shops = shops
    }
}

五、定义actions

store/actions.js

import {reqAddress, reqCategorys, reqShops} from "../api"
import {RECEIVE_ADDRESS, RECEIVE_CATEGORYS, RECEIVE_SHOPS} from "./mutation-types"

export default {
    // 异步获取地址
    async getAddress({commit, state}) {
        const geohash = state.latitude + ‘,‘ + state.longitude
        const result = await reqAddress(geohash)
        commit(RECEIVE_ADDRESS, {address: result.data})
    },

    // 异步获取分类列表
    async getCategorys({commit}) {
        const result = await reqCategorys()
        commit(RECEIVE_CATEGORYS, {category: result.data})
    },

    // 异步获取商家列表
    async getShops({commit, state}) {
        const {latitude, longitude} = state
        const result = await reqShops({latitude, longitude})
        commit(RECEIVE_SHOPS, {shops: result.data})
    }
}

六、定义getters

store/getters.js

export default {

}

七、定义store对象

store/index.js

import Vue from ‘vue‘
import Vuex from ‘vuex‘
import state from ‘./state‘
import mutations from ‘./mutations‘
import actions from ‘./actions‘
import getters from ‘./getters‘

Vue.use(Vuex)

export default new Vuex.Store({
    state,
    mutations,
    actions,
    getters
})

八、注册store

main.js

import store from ‘./store‘

new Vue({
  store
})

原文地址:https://www.cnblogs.com/mxsf/p/10990457.html

时间: 2024-07-29 19:23:33

(十六)硅谷外卖-使用 vuex 管理状态的相关文章

Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制

Senparc.Weixin.MP SDK 微信公众平台开发教程(十六):AccessToken自动管理机制 在<Senparc.Weixin.MP SDK 微信公众平台开发教程(八):通用接口说明>中,我介绍了获取AccessToken(通用接口)的方法. 在实际的开发过程中,所有的高级接口都需要提供AccessToken,因此我们每次在调用高级接口之前,都需要执行一次获取AccessToken的方法,例如: 1 var accessToken = AccessTokenContainer.

vuex 管理状态

来分析下vuex的管理状态吧,如果你用过react中的redux的管理树,那我觉得vuex对你来说很容易掌握 如果你还是不太熟悉vuex是什么,那先看下官网https://vuex.vuejs.org/zh-cn/intro.html, 看下这张图: 下面就举个例子会比较容易理解: 就拿vue的分页组件来理解吧 1. 创建 pagination.vue 文件. <template> <div class="page-wrap"> <ul v-show=&q

(十)硅谷外卖前端部分-HeaderTop 组件

一.说明 此组件会使用到 slot 进行组件间通信 slot 通信是标签, 而不是单纯的数据 二.components/HeaderTop/HeaderTop.vue <template> <!--首页头部--> <header class="header"> <slot name="search"></slot> <span class="header_title"> &l

十六、变更管理; 十七、信息系统安全管理; 十八、项目风险管理

十六.变更管理 1.  变更的工作程序 (1).提出与接受变更申请 (2).对变更的初审 (3).变更方案论证 (4).项目变更控制委员会审查 (5).发出变更通知并开始实施 (6).变更实施的监控 (7).变更效果的评估 (8).判断发生变更后的项目是否已纳入正常轨道 2.  变更初审的4条内容 (1).对变更提出方施加影响,确认变更的必要性,确保变更是有价值的 (2).格式校验,完整性较验,确保评估所需信息准备充分 (3).在干系人间就提出供评估的变更信息达成共识 (4).变更初审的常见方式

linux基础-第十六单元 yum管理RPM包

第十六单元 yum管理RPM包 yum的功能 本地yum配置 光盘挂载和镜像挂载 本地yum配置 网络yum配置 网络yum配置 Yum命令的使用 使用yum安装软件 使用yum删除软件 安装组件 删除组件 清除缓存 查询 课后作业 [本节内容]1. yum的功能:yum是Yellow dog Updater, Modified的缩写,目的就是为了解决RPM的依赖关系的问题,方便使用者进行软件的安装.升级等等工作.2. 掌握光盘挂载和镜像挂载a) 光盘挂载mount /dev/sr0 挂载点或者

Powershell管理系列(二十六)PowerShell操作之批量导出&导入邮箱

-----提供AD\Exchange\Lync\Sharepoint\CRM\SC\O365等微软产品实施及外包,QQ:185426445.电话18666943750 项目中有时候做跨林邮箱迁移的时候,条件不成熟,比如安全考虑或者其他考虑,不能做双林信任,这样就提出了一个问题,历史邮件需要使用的话怎么办,一个简单高效的解决办法就是从源森林批量导出邮件为.pst文件,在批量导入到目的域森林,具体操作如下: 1.赋予管理账号邮件导入导出权限,命令如下: cls whoami New-Manageme

Objective-C(十六、内存管理,自动释放池,ARC,强指针,弱指针,方法族)——iOS开发基础

结合之前的学习笔记以及参考<Objective-C编程全解(第三版)>,对Objective-C知识点进行梳理总结.知识点一直在变,只是作为参考,以苹果官方文档为准~ 十六.内存管理相关知识(二) 1.autorelease,自动释放机制 - (instancetype)autorelease; (1)自动释放池的创建 iOS5.0之前 NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init]; //进行一系列操作 //此处不可以使用

【管理心得之二十六】职场中的“武功”

场景再现==================={放学路上}同学A:最近<天龙八部>看没?我喜欢那里的虚竹,因为他武功最高.同学B:什么呀?才不是虚竹呢,是段誉武功最高.他不仅会"六脉神剑",还会"一阳指"和"北冥神功".同学A:虚竹厉害,他有天山童姥等三人最强内力,后期又习得"降龙十八掌".同学B:这些都没有"六脉神剑"厉害.同学A:..................同学B:...... ==

【管理心得之三十六】《黄帝内经》中的一句话

一则故事--------------------------------------- 古代有一天,魏文王问名医扁鹊说:“你们家兄弟三人,都精于医术,到底哪一位最好呢?扁鹊答:“长兄最好,中兄次之,我最差.文王再问:“那么为什么你最出名呢? 扁鹊答:“长兄治病,是治病于病情发作之前.由于一般人不知道他事先能铲除病因,所以他的名气无法传出去:中兄治病,是治病于病情初起时.一般人以为他只能治轻微的小病,所以他的名气只及本乡里.而我是治病于病情严重之时.一般人都看到我在经脉上穿针管放血.在皮肤上敷药等