vue项目切换用户头像的写法

本文介绍如何在Vue项目中实现用户头像的切换功能,包括使用file输入选择图片,通过FormData上传至服务器,并更新用户头像。同时,讲解了Vue路由传值的两种方法:params和query的区别及应用场景。
摘要由CSDN通过智能技术生成

vue项目切换用户头像的写法

vue程序的头像的切换,今天别人给我讲了下我今天来试了一下还不错,进行总结

首先是找清楚需要用的接口

1,https://www.365msmk.com/api/app/public/img向服务器上传图片

2,https://www.365msmk.com/api/app/user 把服务器图片上传到头像

就这两个就行了

接下来就是步骤的实现

主要用到的其实是表单输入中的file

<template>
  <div id="app">
    <img :src="img" alt style="width: 80px;" />
    <br />
    <label>
      手机拍摄 //这里的camera就是调用手机相机的功能 
      <input type="file" accept="image/*" capture="camera" @change="paishe($event)" />
    </label>
    <br />
    <br />
    <label>
      相册上传 //去掉capture就没有手机相机功能只提供上传图片
      <input type="file" accept="image/*" @change="paishe($event)" />
    </label>
  </div>
</template>
<script>
export default {
  data() {
    return {
      img: "",
    };
  },
  //页面加载的时候获取一下用户信息
  mounted() {
    this.$http.get("https://www.365msmk.com/api/app/userInfo").then((res) => {
      this.img = res.data.data.avatar;
    });
  },
  methods: {
    paishe(e) {//这是一个change事件参数是e,e中的target.files中包含了图片的主要信息,上传时间之类的
      console.log(e);
      //因为这里的上传接口是利用 FromData来实现传参的
      //所以我们这里初始化了一个FromData
      let formData = new FormData();
      formData.append("file", e.target.files[0]);
      //调用上传图片接口上传照片
      this.$http
      //将formData作为参数传给服务器
        .post("https://www.365msmk.com/api/app/public/img", formData)
        .then((res) => {
          console.log(res);
          if (res.data.code === 200) {
          //成功拿到图片在服务器的数据后就可以调用设置头像的接口了
            //设置头像接口
            this.$http
              .put("https://www.365msmk.com/api/app/user", {
                avatar: res.data.data.path,
              })
              .then((ress) => {
                console.log("图像路径", ress);
                this.img = res.data.data.avatar;
              });
          }
        });
    },
  },
  filters: {},
  watch: {},
};
</script>
**

vue路由传值

vue的路由传值有两种方式

params

this.$router.push({
  path:"/地址",
  params:{
    参数名:"参数值"
  }
})
接受
this.$route.params."参数值"
12345678

params的话传参刷新页面数据会消失不会保存

query

this.$router.push({
  path:"/地址",
  params:{
    参数名:"参数值"
  }
})

接受
this.$route.query."参数值"
123456789

query的话刷新页面数据也不会丢失

flex 最后一行左对齐

最近项目布局上要求item两端对齐,而且最后一行在列不满的情况下要求左对齐,使用flex的**justify-content: space-between;**实现时发现最后一行不能左对齐,而是两端对齐方式,下图不是项目上想要的效果(不使用flex也可以实现,本文仅讨论使用flex实现)

felx最后一行对齐的话可以用空白div来填充

还可以用::after(适用于每行列数确定的场景)

.box:after {
    content: "";
    flex: auto;
 }

Js数组中常用的方法

push()

像数组的末尾添加,返回的是添加后的数组的长度,会改变原来的数组

var a = [a]
var b= a.push(b)

结果:[a,b]

pop()

删除数组尾部的元素,改变原来数组

var a = [a,b]
var b= a.pop()

结果:[a]

unshift()

数组前添加一个元素,改变原来数组

var a = [a]
var b= a.unshift(b)

结果:[b,a]

shift()

删除数组中的首个元素,改变原来数组

var a = [a,b]
var b= a.shift()

结果:[b]

splice()

方法用于添加或删除数组中的元素,改变原来的数组

var a = [a,b]
var b= a.splice(0,1)
从0开始删除一个
结果:[b]
var a = [a,b]
var b= a.splice(0,1,c,d)
移出a,并且添加c,d
结果:[b,c,d]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值