Vue 移动端 实战九 编辑用户资料、修改呢称、生日、性别、头像、以及头像的剪裁器依赖使用、Content-Type 要求的 multipart/form-data 格式

本文介绍了在Vue移动端应用中如何实现编辑用户资料的功能,包括修改昵称、性别、生日和头像。详细讲解了从创建组件、配置路由,到页面布局、数据展示,以及各个修改项的实现步骤,特别是头像修改涉及到了Content-Type为multipart/form-data的上传需求。
摘要由CSDN通过智能技术生成

编辑用户资料

1.0 创建组件并配置路由

1、创建 views/user/index.vue

<template>
  <div>
    <van-nav-bar title="个人信息" left-arrow right-text="保存" />
    <van-cell-group>
      <van-cell title="头像" is-link>
        <van-image
          round
          width="30"
          height="30"
          fit="cover"
          src="http://toutiao.meiduo.site/FgSTA3msGyxp5-Oufnm5c0kjVgW7"
        />
      </van-cell>
      <van-cell title="昵称" value="abc" is-link />
      <van-cell title="性别" value="男" is-link />
      <van-cell title="生日" value="2019-9-27" is-link />
    </van-cell-group>
  </div>
</template>

<script>
  export default {
   
    name: "UserIndex"
  };
</script>

2、将该页面配置到根路由

{
   
  name: 'user-profile',
  path: '/user/profile',
  component: () => import('@/views/user-profile')
}

2.0 页面布局

<template>
  <div class="user-profile">
    <!-- 导航栏 -->
    <van-nav-bar
      class="page-nav-bar"
      title="个人信息"
      left-arrow
      @click-left="$router.back()"
    />
    <!-- /导航栏 -->

    <!-- 个人信息 -->
    <van-cell class="avatar-cell" title="头像" is-link center>
      <van-image
        class="avatar"
        round
        fit="cover"
        src="https://img.yzcdn.cn/vant/cat.jpeg"
      />
    </van-cell>
    <van-cell title="昵称" value="内容" is-link />
    <van-cell title="性别" value="内容" is-link />
    <van-cell title="生日" value="内容" is-link />
    <!-- /个人信息 -->
  </div>
</template>

<script>
export default {
   
  name: 'UserProfile',
  components: {
   },
  props: {
   },
  data () {
   
    return {
   }
  },
  computed: {
   },
  watch: {
   },
  created () {
   },
  mounted () {
   },
  methods: {
   }
}
</script>

<style scoped lang="less">
.user-profile {
   
  .avatar-cell {
   
    .van-cell__value {
   
      display: flex;
      flex-direction: row-reverse;
    }
    .avatar {
   
      width: 60px;
      height: 60px;
    }
  }
}
</style>

3.0 展示用户信息

思路:

  • 找到数据接口
  • 封装请求方法
  • 请求获取数据
  • 模板绑定

1、在 api/user.js 中添加封装数据接口

/**
 * 获取当前登录用户的个人资料
 */
export const getUserProfile = target => {
   
    return request({
   
        method: 'GET',
        url: '/app/v1_0/user/profile'
    })
}

2、在 views/user/index.vue 组件中请求获取数据

import {
    getUserProfile } from '@/api/user'

  created () {
   
    this.loadGetUserProfile()
  },
 methods: {
   
    async loadGetUserProfile() {
   
      try {
   
        const {
    data } = await getUserProfile()
        this.user = data.data
      } catch (err) {
   
        this.$toast('获取数据失败')
      }
    }
  }
    <van-cell class="avatar-cell" title="头像" is-link center>
      <van-image
        class="avatar"
        round
        fit="cover"
        :src="user.photo"
      />
    </van-cell>
    <van-cell title="昵称" :value="user.name" is-link />
    <van-cell title="性别" :value="user.gender === 0 ? '男' : '女'" is-link />
    <van-cell title="生日" :value="user.birthday" is-link />

4.0 修改昵称

一、准备弹出层

<van-cell title="昵称" :value="user .name" is-link @click="isUpdateNameShow = true"/>

    <!-- 修改名称弹出层 -->
    <van-popup v-model="isUpdateNameShow" position="bottom" style="height: 100%">
      <update-name 
      v-if="isUpdateNameShow"
       @close="isUpdateNameShow = false"
       v-model="user.name"
      ></update-name>
    </van-popup>

二、封装组件

<template>
  <div class="update-name">
    <!-- 导航栏 -->
    <van-nav
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值