VUE3.0+ANTDESIGN,含ant-design/icon-vue加载

npm install -g @vue/cli@next
vue create vueapp //选择vue3
cd vueapp
npm i --save ant-design-vue@next  //测试版,稳定版好像不正常工作
npm i babel-plugin-import --dev //可能已默认安装
npm i @ant-design/icons-vue --dev  //vue3.0 icon组件安装

一、全面加载Antd (不含 icon)

main.js:

import {createApp} from 'vue'
import Antd from 'ant-design-vue';
import 'ant-design-vue/dist/antd.css';
import App from './App.vue'

createApp(App)
    .use(Antd) 
    .mount('#app')

二、按需加载,减少体积

1 使用 babel-plugin-import(推荐)。

babel.config.js中加入plugins配置段

// .babelrc or babel-loader option
module.exports = {
  presets: [
    '@vue/cli-plugin-babel/preset'
  ],
  "plugins": [
    ["import", { "libraryName": "ant-design-vue", "libraryDirectory": "es", "style": "css" }] // `style: true` 会加载 less 文件
  ]
}

(1)全局调用,无加加载icon

main.js: //加在这里面,可以在其它所有vue中调用

import { DatePicker } from 'ant-design-vue'; 

createApp(App)
    .use(DatePicker)  
    .mount('#app')

hello.vue:

<a-DatePicker />


(2)组件调用(含ant-design/icon-vue加载)

hello.vue:

<template>   
  <DatePicker />
  <FilterOutlined  />
</template>
<script> 
import {DatePicker} from 'ant-design-vue'
import { FilterOutlined } from '@ant-design/icons-vue';

export default {
  name: 'App',
  components: {
  	FilterOutlined,
    DatePicker
  }
}
</script>

2.手动引入

import DatePicker from 'ant-design-vue/lib/date-picker'; // 加载 JS
import 'ant-design-vue/lib/date-picker/style/css'; // 加载 CSS

createApp(App)
    .use(DatePicker)  
    .mount('#app')
// import 'ant-design-vue/lib/date-picker/style';         // 加载 LESS
Vue3.0中使用ant-design-vue上传文件,需要先安装ant-design-vue和axios模块: ```bash npm install ant-design-vue axios --save ``` 然后在需要使用上传组件的页面中,引入ant-design-vue和axios模块: ```javascript import { Upload, Button } from &#39;ant-design-vue&#39;; import axios from &#39;axios&#39;; ``` 然后在页面中,添加上传组件: ```html <template> <div> <upload :action="uploadUrl" :headers="headers" :showUploadList="false" :beforeUpload="beforeUpload" :onSuccess="onSuccess" :onError="onError" > <button> <a-button> <a-icon type="upload" /> Click to Upload </a-button> </button> </upload> </div> </template> ``` 其中,`uploadUrl`是上传文件的接口地址,`headers`是上传文件时需要携带的请求头,`beforeUpload`是上传文件前的校验函数,`onSuccess`和`onError`分别是上传成功和上传失败的回调函数。 在页面的`script`中,需要定义这些属性的值以及`beforeUpload`、`onSuccess`、`onError`函数的实现: ```javascript export default { name: &#39;UploadPage&#39;, components: { Upload, Button }, data() { return { uploadUrl: &#39;/api/upload&#39;, headers: { Authorization: &#39;Bearer &#39; + localStorage.getItem(&#39;token&#39;) } }; }, methods: { beforeUpload(file) { const isJpgOrPng = file.type === &#39;image/jpeg&#39; || file.type === &#39;image/png&#39;; if (!isJpgOrPng) { this.$message.error(&#39;You can only upload JPG/PNG file!&#39;); return false; } const isLt2M = file.size / 1024 / 1024 < 2; if (!isLt2M) { this.$message.error(&#39;Image must smaller than 2MB!&#39;); return false; } return true; }, onSuccess(response, file) { this.$message.success(&#39;Upload successfully!&#39;); }, onError(error, response, file) { this.$message.error(&#39;Upload error!&#39;); } } }; ``` 其中,`beforeUpload`函数用来进行文件类型和大小的校验,`onSuccess`和`onError`函数用来处理上传成功和上传失败的情况。 最后,在页面的`style`中,可以添加一些样式来美化上传按钮: ```css button { margin-top: 16px; } button .ant-btn { width: 100%; } button .anticon-upload { margin-right: 8px; } ``` 这样,就可以在Vue3.0中使用ant-design-vue上传文件了。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值