美文网首页
1、vuex状态管理--购物车数量增减

1、vuex状态管理--购物车数量增减

作者: 蕉下客_661a | 来源:发表于2019-04-26 16:43 被阅读0次
GIF.gif
<template>
    <div>
      <h3 style="margin-bottom:20px;">1、购物车数量增减</h3>
      <div class="quantity">
         <a href="javascript:;" class="decrement" :class="disabled ?'disabled':'' " @click=decreaseNum(1) >-</a>
         <input  class="iTxt" v-model="changableNum" />
         <a href="javascript:;" class="increment" @click=increaseNum(1) >+</a>
       </div>
    </div>
</template>
<script>
import { mapState,mapMutations} from 'vuex'   //引入mapState、mapMutations映射函数
export default{
    computed:{
        ...mapState({
            changableNum:state => state.headerStatus.changableNum, //用模块headerStatus里的状态 changableNum
            disabled:state => state.headerStatus.disabled
        }),

    methods:{
        ...mapMutations(['increaseNum','decreaseNum'])
    }
}
</script>

vuex -- headerStatus.js模块 存放路径:store/modules/headerStatus.js

const state = {
    changableNum:1,
    disabled:true
}
const getters = {
}
const mutations = {
    increaseNum(state,num){ //changableNum增加一个数
        state.changableNum += num;
        if(state.changableNum >1){
            state.disabled = false;
        }else{
            state.disabled = true;
        }         
    },
    decreaseNum(state,num){ //changableNum减少一个数            
        if(state.changableNum > 1 ){
            state.changableNum -= num;
            if(state.changableNum <= 1 ){
                state.disabled = true;
                return false;    
            }                     
        }        
    }
}
const actions = {
}
export default {
    state,
    getters,
    mutations,
    actions
}

这是store 文件夹下的index.js

用modules写法
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)

import headerStatus from './modules/headerStatus'


export default new Vuex.Store({
    modules:{
        headerStatus
    }
})

css样式

.quantity{
        position:relative;
        display:inline-block;
        width:80px;
        height:22px;
        background:#fff;
    }
    .increment,.decrement{
        display:inline-block;
        width:16px;
        height:18px;
        background:#fff;
        border:1px solid #ccc;
        color:#666;
        padding:1px 0;
        text-align:center;
    }
    .increment{
        float:right;
        border-left:0px;
    }
    .decrement{
        float:left;
        border-right:0;
    }
    .iTxt{
        position:absolute;
        left:17px;
        top:0px;
        display:inline-block;
        width:42px;
        height:18px;
        line-height:18px;
        border:1px solid #ccc;
        text-align:center;
        font-size:12px;
        padding:1px;
    }
    
    .disabled{
       color:#eee;
    }

相关文章

  • 1、vuex状态管理--购物车数量增减

    vuex -- headerStatus.js模块 存放路径:store/modules/headerStat...

  • Vuex 状态管理

    Vue组件间通信方式 Vuex核心概念和基本使用 购物车案例 模拟实现vuex 一、组件内的状态管理流程 状态管理...

  • Vue实战(四) - 实战项目(下) - 路由初步/复杂状态管理

    0. 实战场景介绍 通过Vuex构建全局状态管理的购物车。通过路由功能实现购物车的跳转。 1. 创建空白购物车 s...

  • Vuex状态管理

    简介 Vuex用作共享状态管理或者复杂跨组件通信(非父子组件)。共享状态管理如登录状态、用户信息、购物车等等。包含...

  • Vue学习笔记(三)

    一. 状态管理 Vuex 1. Vuex使用 Vuex是一个专为 Vue.js 应用程序开发的状态管理模式。它采用...

  • vuex基础

    1.vuex是什么? 状态管理模式,集中式存储管理,多组件需要共享状态时使用vuex 1.1状态管理模式 单个组件...

  • Vuex

    一、vuex之store 1、vuex 定义 管理状态 + 共享数据 ,在各个组件间管理外部状态 2、使用 a、引...

  • vuex

    什么是vuex vue框架中的状态管理。 使用场景有:单页面应用中,组件间的状态。音乐播放、登陆状态、加入购物车等...

  • Web前端—vue面试题(一)

    1,对于Vue了解多少,什么是Vuex,VueRouter vuex为状态管理,它集中存储管理应用的所有组件的状态...

  • SYNumberEditView数量编辑UI控件

    SYNumberEditView数量编辑视图控件(如购物车中商品数量的增减)特别说明: 限制只能输入0~9的阿拉伯...

网友评论

      本文标题:1、vuex状态管理--购物车数量增减

      本文链接:https://www.haomeiwen.com/subject/pgjqnqtx.html