Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
本文详细解析如何使用 Vue.js 构建地址管理页面,涵盖数据加载、默认地址切换、编辑与删除功能。重点介绍通过 Vue 指令与 jQuery 结合实现 Radio 按钮的点击选中与取消,并实时同步服务器数据,同时提供编辑地址的路由跳转实现方案。
Vue.js 实现地址管理页面思路详解(地址添加、编辑、删除和设置默认地址)
前期开发了一个地址管理页面,在实现过程中遇到了一些问题,但最终成功完成,特此记录整个过程。

页面加载时,通过 Ajax 从数据库获取数据并动态渲染到页面。用户可以点击单个地址进行编辑或删除操作,也可以点击“默认地址”按钮切换样式。默认地址可以为空(点击选中或取消),但如果设置了默认地址,则只能保留一个。接下来将逐步实现这些功能。
本文采用 Vue.js 框架。页面加载阶段,在 mounted 生命周期钩子中定义一个方法,调用 Ajax 请求获取数据,并通过 v-for 循环将数据绑定到 HTML 元素中。这部分较为简单,此处不再赘述,重点在于如何实现点击选中与取消 Radio 按钮,并在点击过程中切换样式。
var vm = new Vue({
el:"#",
data:{
sites:[]
},
mounted:function() {
this.showData();
},
methods:{
showData:function(){
jQuery.ajax({
url:"这里写你的访问路径",
data:"",
type:"GET",
dataType:"json",
success:function(res){
if(res.code==0){
for(var i=0;i<res.data.addresses.length;i++){
//将获取到的数据赋值到data中的site[]
vm.sites.push(res.data.addresses[i]);
}
}else{
alert("加载失败");
}
}
})
}
}
})
首先实现 Radio 按钮的点击选中与取消功能,可参考单独整理的文章:jQuery实现按钮的点击 全选/反选 单选框/复选框 文本框 表单验证。由于本项目使用 Vue.js,以下是页面的具体实现代码:
<input type="radio" :id="site.addressid" name="defaultAddress" class="address_manager_content-d3-left-img" data-waschecked="true" v-if="site.isdefault=='1'" checked="checked" @click="editIsDefault(site, $event)"/>
<input type="radio" :id="site.addressid" name="defaultAddress" class="address_manager_content-d3-left-img" data-waschecked="false" v-else @click="editIsDefault(site, $event)" />
将获取到的 addressid 通过 :id 属性赋值给每个元素,确保每个元素对应其唯一的 id。同时为元素添加 data-* 属性(点击了解data-*属性),以便获取 checked 状态信息。此外,为每个 Radio 添加 class 类名,方便设置点击后的图片切换效果。根据 v-if 判断该条地址信息是否为默认地址,并在元素上添加点击事件,传入 site(每条地址的相关信息)以及该地址信息的 DOM 对象。
以下是修改默认地址的方法实现:该功能实现了点击选中与取消,并在点击切换后立即向服务器提交数据,从而实现实时数据更新。
editIsDefault:function(site,event){
if($(event.currentTarget).data("waschecked")==true){
$(event.currentTarget).prop("checked",false);
$("input:radio[name='defaultAddress']").data('waschecked',false);
$(event.currentTarget).data("waschecked",false);
}else{
$(event.currentTarget).prop("checked",true);
$("input:radio[name='defaultAddress']").data('waschecked',false);
$(event.currentTarget).data("waschecked",true);
}
var isDefault;
if($(event.currentTarget).prop("checked")){
isDefault = "1";
}else{
isDefault = "0";
}
jQuery.ajax({
url:"这里写你自己的url",
data:{
addressid: site.addressid,
name: site.name,
phone: site.phone,
area: site.area,
address: site.address,
isdefault: isDefault
},
type:"GET",
dataType:"json",
success:function(res){
if(res.code=="0"){
}
},
error:function(){
alert("修改默认地址失败,请刷新后重试");
}
})
}
使用 CSS 样式来实现 Radio 点击选中和取消过程中图片样式的切换,可参考另一篇文章:点击radio实现两个图片间的样式切换。
此处直接提供相关代码供参考:
.address_manager_content-d3-left-img{
/* 隐藏原有样式 */
appearance: none;
-webkit-appearance: none;
outline: none;
/* 增加新样式:未选中时 */
display: inline-block;
width: 20px;
height: 20px;
position: static;
margin : 15px 5px 0 0!important;
background: url(未选中时图片的url) no-repeat;
background-size: cover;
}
.address_manager_content-d3-left-img:checked{/* 选中时 */
background: url(选中时的图片url) no-repeat;
background-size: cover;
}
接下来实现点击编辑地址的功能(删除功能的思路与此类似)。
这一部分非常简单,因为每个地址信息都是通过 v-for 循环生成的。点击修改时,将获取到的数组中的 site 传入到方法中即可。访问编辑页面时,将该条地址信息的 id 传递过去,在编辑地址页面通过 id 从后台查询该条地址信息并进行地址回填,即可实现编辑功能。
<span @click="editAddress(site)">编辑</span>
editAddress:function(site){
window.location.href="你的跳转路径(编辑地址信息的页面)?addressid=" rel="external nofollow" +site.addressid;
}
总结
以上所述是小编给大家介绍的Vue.js 实现地址管理页面(地址添加、编辑、删除和设置默认地址),希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对本站网站的支持! 如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!
Vue.js官网地址是多少?区分国际站与中文文档入口
2026-11-05 16:29:53
Vue/React 项目中怎么封装复用 flv.js 播放器组件
2026-11-03 19:42:36
Vue.js 动态路由权限控制与菜单生成实战方案
2026-11-03 13:46:47
Vue.js 企业级项目架构搭建与目录规范实战
2026-11-03 12:25:32
Vue 或 React 项目中集成 Swiper.js 的最佳实践
2026-11-02 10:29:42
