Vue 简单实例 地址选配8

摘要:
我们可以看到所有的地址都是点亮的状态,就是外面都有个橙色的框。我们需要把默认地址,才设置为点亮的状态。1、新建变量checkedIndex,默认为0,然后把遍历地址列表,把字段isDefault为true的地址索引赋值给checkedIndexdata(){return{checkedIndex:0,//默认选中的索引}},methods:{getAddress(){this.axios.get.then},}2、修改循环代码:也可以写为:此时效果图:3、添加点击事件:把当前索引赋值给checkedIndex。

我们可以看到所有的地址都是点亮的状态,就是外面都有个橙色的框。我们需要把默认地址,才设置为点亮的状态。

1、新建变量checkedIndex,默认为 0,然后把遍历地址列表,把字段isDefault为true的地址索引赋值给checkedIndex

data() {
    return{
      checkedIndex: 0, //默认选中的索引
}
},
methods: {
    getAddress() {
      this.axios.get('/mock/address.json').then(res =>{
        console.log(res)
        this.addrList =res.data.data
        this.addrList.forEach((item, index) =>{
          if(item.isDefault) {
            this.checkedIndex =index
          }
        })
      })
    },
}

2、修改循环代码:

<li :class="{ check: item.isDefault }"v-for="item in addrFilter":key="item.addressId">

也可以写为:

<li  :class="{ check: checkedIndex == index }"v-for="(item, index) in addrFilter":key="item.addressId">

此时效果图:

Vue 简单实例 地址选配8第1张

3、添加点击事件:

<li :class="{ check: checkedIndex == index }"v-for="(item, index) in addrFilter":key="item.addressId"@click="checkedIndex = index">

把当前索引赋值给checkedIndex。

点击第一个地址后的效果图:

Vue 简单实例 地址选配8第2张

4、给设为默认添加点击事件:

<a href="javascript:;"class="addr-set-default-btn"@click="slectDefault(index)">
       <i>设为默认</i>
</a>

<script>export default{
  methods: {
    //设为默认
slectDefault(index) {
      console.log(index)
      this.addrList.map((item, i) =>{
        if(index ==i) {
          item.isDefault = true} else{
          item.isDefault = false}
      })
    }
  }
}
</script>

当前点击的索引和遍历中的索引一致时,设为true ,其他都设置为false。

也可以点击时传递addressId,效果都是一样的:

<a href="javascript:;"class="addr-set-default-btn"@click="slectDefault(item.addressId)">
       <i>设为默认</i>
</a>

<script>export default{
  methods: {
    //设为默认
slectDefault(id) {
      console.log(id)
      this.addrList.map(item =>{
        if(id ==item.addressId) {
          item.isDefault = true} else{
          item.isDefault = false}
      })
    }
  }
}
</script>

切换后的效果图:

Vue 简单实例 地址选配8第3张

免责声明:文章转载自《Vue 简单实例 地址选配8》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇小程序微信支付申请与配置完整版操作流程HashMap源码分析下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Vue实现双向绑定的原理以及响应式数据

一、vue中的响应式属性    Vue中的数据实现响应式绑定    1、对象实现响应式:      是在初始化的时候利用definePrototype的定义set和get过滤器,在进行组件模板编译时实现water的监听搜集依赖项,当数据发生变化时在set中通过调用dep.notify进行发布通知,实现视图的更新。   2、数组实现响应式:    对于数组则...

vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)

vue 弹窗时 监听手机返回键关闭弹窗(页面不跳转)   [注]:  popstate 事件   a.当活动历史记录条目更改时,将触发popstate事件。   b.如果被激活的历史记录条目是通过对history.pushState()的调用创建的,或者受到对history.replaceState()的调用的影响,          popstate...

细说Vue作用域插槽,匹配应用场景。

最近在官方文档中看到,vue新增了一种插槽机制,叫做作用域插槽。要求的版本是2.1.0+。 首先来说一下:顾名思义,所谓作用域插槽,主要就在作用域,需要注意的是(以下几点看不懂不要紧,配合下面的例子,你会一看就懂): 1. 组件中的slot标签只能有有一个,而这一个slot用于替代组件调用时的多个标签。即一个slot代替一组范围的标签,即为作用域。 2....

vue.js中 ,回车键实现登录或者提交表单!

vue的功能非常强大,但是我们作为一个后端开发人员,前端的东西不一定都弄的很明白,今天就给大家介绍一个回车提交表单的真实案例,达到回车登录的效果! @keyup.enter实现的效果 <input v-model = "password"type="password"name=""class="pwd"placeholder="密码"@keyup.e...

Vue前端实现登陆功能

在登陆组件中找到登陆按钮,绑定点击事件 <button @click="loginhander">登录</button> 在methods中请求后端 export default { name: 'Login', data(){ return { login_type: 0, r...

Vue之项目搭建

  一、Vue自动化工具的安装 nvm:nodejs 版本管理工具。 也就是说:一个 nvm 可以管理很多 node 版本和 npm 版本。 nodejs:在项目开发时的所需要的代码库 npm:nodejs 包管理工具。 在安装的 nodejs 的时候,npm 也会跟着一起安装,它是包管理工具。 npm 管理 nodejs 中的第三方插件   1,安装nv...