Vue3 使用 setup语法糖 + TypeScript完成头像上传功能

作为一名前端开发人员,除了要对页面布局知识的掌握,还要会头像上传和文件上传等功能的实现,这些功能需求是日常开发中必不可少的,下面我们就一起研究一下头像上传的功能。

1.HTML部分

          在上述 html 中   用 v-if 和 v-else 判断是显示新上传的头像图片还是默认头像的图片,如果有新上传的图片就用v-if显示图片的地址并展示新上传的图片,如果没有那就用 v-else 显示默认的头像。form表单中有俩个事件,一个是监听头像变化的change事件,另一个是 设置一个按钮 做一个单击保存(上传头像)的事件

 2.js部分

        定义响应式的头像表单,上传头像的输入框和预览图片的 URL地址,实现 previewAvatar方法,若 files 非空,可以访问其第一个元素 [0] 并将其赋给变量 file;否则的话变量 file 将会等于 undefined。然后通过 FileReader 对象读取文件的 URL 地址,再将读取到的地址赋值给avatarUrl,vue会自动更新视图并显示头像图片。

3.保存头像的方法 

         文中的代码实现了简单的上传图片页面展示的效果,异步函数uploadAvatar通过fetch向后端发送了一个POST 请求,后端接收传过来的图片地址进行保存(省略);还可以通过base64编码形式进行图片的地址转换(转换成字符串),这就可以不用发送请求也能展示头像图片了。

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
好的,以下是一个使用Vue3 + TypeScript + Ant Design Modal组件的示例代码: ```vue <template> <a-button type="primary" @click="showModal">打开弹出框</a-button> <a-modal v-model:visible="visible" :title="title" @ok="handleOk" @cancel="handleCancel"> <p>{{ content }}</p> </a-modal> </template> <script lang="ts"> import { defineComponent, ref } from 'vue'; import { Modal, Button } from 'ant-design-vue'; export default defineComponent({ name: 'MyModal', components: { Modal, Button }, setup() { const visible = ref(false); const title = ref('提示'); const content = ref('这是弹出框内容'); const showModal = () => { visible.value = true; }; const handleOk = () => { visible.value = false; // 点击确定按钮后的操作 }; const handleCancel = () => { visible.value = false; // 点击取消按钮后的操作 }; return { visible, title, content, showModal, handleOk, handleCancel, }; }, }); </script> ``` 在这个示例代码中,我们首先引入了Ant Design的Modal和Button组件。然后,使用`defineComponent`方法定义了一个名为`MyModal`的组件。在`setup`函数中,我们定义了一些响应式的变量,包括`visible`(控制弹出框的显示与隐藏)、`title`(弹出框的标题)、`content`(弹出框的内容)。接着,我们定义了三个方法,分别是`showModal`、`handleOk`和`handleCancel`。`showModal`方法用于显示弹出框,`handleOk`方法和`handleCancel`方法则分别在点击弹出框的确定和取消按钮时触发。 最后,在模板中,我们使用Ant Design的Button组件来触发`showModal`方法,使用Ant Design的Modal组件来展示弹出框。在Modal组件中,我们使用Vue3的语法糖`v-model:visible`来绑定弹出框的显示与隐藏状态。同时,我们通过`:title`传递了弹出框的标题,通过`@ok`和`@cancel`监听了弹出框的确定和取消事件。在弹出框的内容中,我们使用了响应式变量`content`来展示弹出框的内容。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值