当前位置: 首页 > ds >正文

vuex实现同一页面radio-group点击不同按钮显示不同表单

本文实现的是点击单一规格和多规格两个按钮会在页面显示不同的表单
在这里插入图片描述
在这里插入图片描述

方法一

<!-- 单规格和多规格的切换 -->
<el-form label-width="80px" class="text-align-left"><el-form-item label="商品规格"><!-- 监听skus_type的改变 --><el-radio-group :value="skus_type" size="mini" @input="vModel({key: 'skus_type',value: $event})"><el-radio-button :label="0">单一规格</el-radio-button><el-radio-button :label="1">多规格</el-radio-button></el-radio-group></el-form-item>
</el-form><template v-if="skus_type === 0"><el-form label-width="80px" class="text-align-left">表单一</el-form>
</template><template v-if="skus_type === 1"><el-form label-width="80px" class="text-align-left">表单二</el-form>
</template>

表单中的数据都由vuex统一管理,因此需要创建store/index.js(store的总文件)和store/modules/goods_create.js(存储本goods_create页面的数据和方法)两个页面,详细步骤参考上一篇博客,本文将基于两页面已正确创建且运行无报错的情况下进行。

  • 在goods_create.js文件中:
  • 注意必须启用命名空间,且与state同级,不然会报错
export default {namespaced: true,  // 必须添加这行来启用命名空间state: {skus_type: 0,//商品规格},mutations: {// 修改statevModel(state,{key,value}){state[key] = value;    },}}
  • 在create.vue文件中
  • 引入mapMutations
  • 解构方法
  • 注意添加’goods_create’,是在store/Index.js中导入时的方法名
  • …mapMutations(‘goods_create’,[‘vModel’]),
<script>
// 解构vuex
import { mapState, mapMutations } from 'vuex';export default {computed: {...mapState('goods_create', {skus_type: state => state.skus_type,}),},methods: {// 修改state...mapMutations('goods_create',['vModel']),}
}
</script>
  • 在语句中触发
  • radio-group属于element-ui的封装好的方法,需要用input触发,用change触发会报错
<!-- 监听skus_type的改变 -->
<el-radio-group :value="skus_type" size="mini" 
@input="vModel({key: 'skus_type',value: $event
})"><el-radio-button :label="0">单一规格</el-radio-button><el-radio-button :label="1">多规格</el-radio-button>
</el-radio-group>

方法二

  • 在goods_create.js中创建一个新的方法
  // 修改state方法二vModelState(state,{key,value}){state[key] = value;    },
  • 在create.vue中传入vModelState方法,并修改vModelState的数据
  // 修改state方法二...mapMutations('goods_create',['vModelState']),// 修改表单的值vModel(key,value){this.vModelState({key,value})}
  • 触发
  • 触发方法比方法一简洁
 <el-radio-group :value="skus_type" size="mini" @input="vModel('skus_type',$event)"><el-radio-button :label="0">单一规格</el-radio-button><el-radio-button :label="1">多规格</el-radio-button></el-radio-group>
http://www.xdnf.cn/news/778.html

相关文章:

  • nrf52840 16通道adc+DMA采集电压 C语言代码
  • Linux系统编程---孤儿进程与僵尸进程
  • 【python】尾部多写个逗号会把表达式变成 tuple
  • 俄罗斯方块-简单开发版
  • 企业工商信息查询API接口开发指南 - 基于模糊检索的工商数据补全方案
  • 报告总结笔记 | Jeff Dean ETH AI趋势 笔记:AI 的重要趋势:我们是如何走到今天的,我们现在能做什么,以及我们如何塑造 AI 的未来?
  • 边缘损失函数
  • 面向对象编程的四大特性详解:封装、继承、多态与抽象
  • 远程服务调用的一些注意事项
  • 栈和队列(C语言)
  • 抱佛脚之学SSM一
  • AIGC-几款医疗健康智能体完整指令直接用(DeepSeek,豆包,千问,Kimi,GPT)
  • 阿里HumanAIGC 团队开源实时数字人项目ChatAnyone
  • 正则化和优化策略
  • 体育用品有哪些·棒球1号位
  • 脚本中**通配符用法解析
  • 【CentOs】构建云服务器部署环境
  • 基数平衡多伯努利滤波器(CB-MBM):基于约束优化的多目标数量与存在概率联合估计方法
  • 在Fortran和Python之间共享变量
  • 一个Nuxt3 SSR服务端渲染简洁好用的开源个人博客系统 交互设计体验简单 腾讯markdown编辑器 支持drawio画图
  • STM32开发过程中碰到的问题总结 - 4
  • [Windows] 星光桌面精灵 V0.5
  • OSI七层模型
  • 开源项目FastAPI-MCP:一键API转换MCP服务
  • 信创时代编程开发语言选择指南:国产替代背景下的技术路径与实践建议
  • MIT6.S081-lab4前置
  • ROS机器人开发实践->机器人建模与仿真
  • LeetCode每日一题4.20
  • SSRF学习
  • 【Agent】AI智能体评测基座AgentCLUE-General