目录
注册安装:
import { Toast } from 'vant'
Vue.use{Toast}
1.导入调用(组件内或非组件中均可)
import { Toast } from 'vant'
Toast('提示内容')
2.通过this直接调用(必须组件内)
this.$toast('提示内容')
3.自定义加载
// 自定义加载图标
Toast.loading({
message: '加载中...',
forbidClick: true,
loadingType: 'spinner',
//duration:0 //展示时长(ms),值为 0 时,toast 不会消失
//icon: 'like-o',//设置图标
});
4.显示多个提示与关闭
Toast.allowMultiple();
const toast1 = Toast('第一个 Toast');
const toast2 = Toast.success('第二个 Toast');
toast1.clear();
toast2.clear();
Toast.clear();//关闭全部提示
5.axios中使用toast
import { Toast } from 'vant'
// 自定义配置-请求/响应拦截器
// 添加请求拦截器
instance.interceptors.request.use(function (config) {
// 在发送请求之前做些什么
// 开启loading,禁止背景进行点击
Toast.loading({
message: '加载中...',
forbidClick: true,
loadingType: 'spinner',
duration: 0// 不会自动消失,提示框一致存在
})
// 设置请求头
const token = store.state.user.userInfo.token
if (token) {
config.headers['Access-Token'] = token
config.headers.platform = 'H5'
}
// 对特定接口提示有效
if (config.url === '/address/add') {
// 如果是 ''/address/add' 接口,显示特定的 Toast 提示
Toast.success('添加成功')
}
return config
}, function (error) {
// 对请求错误做些什么
return Promise.reject(error)
})
instance.interceptors.response.use(function (response) {
// 2xx 范围内的状态码都会触发该函数。
// 对响应数据做点什么(默认axios会多包装一层data,需要响应拦截器中处理下)
const res = response.data
if (res.status !== 200) {
// 给了错误提示,Toast默认还是单例模式,后面的Toast调用了,将会把前面的一个Toast效果覆盖
// 给错误提示
Toast(res.message)
// 返回一个错误提示
return Promise.reject(res.message)
} else {
// 正确接收数据
// 关闭提示框
Toast.clear()
}
return res
}, function (error) {
// 超出 2xx 范围的状态码都会触发该函数。
// 对响应错误做点什么
return Promise.reject(error)
})