Toast 提示
基础用法
- 编辑消息体内容
- toast出现的位置
- 自动关闭及设置自动关闭
- 点击关闭
- 关闭回调函数
- 关闭文本可修改
- 消息体支持HTML
Attributes
参数 | 说明 | 类型 | 可选值 | 默认值 |
---|---|---|---|---|
autoClose | 是否自动关闭或关闭时间 | Boolean/Number | -- | 5 |
closeButton | 关闭按钮的内容或触发内容 | Object | -- | '关闭' |
enableHtml | 是否开启HTML | Boolean | -- | false |
position | 弹出位置 | String | top/bottom/middle | top |
注意:
- autoClose为false时,closeButton将会显示默认值,除非自己写obj
- autoClose为Number时,closeButton将不显示
实现逻辑
- 使用plugin,用户使用Vue.use(plugin)可以避免工程问题:1)挂在原型链名字重复;2)引用Vue版本不一致;
- JS动态创建组件
let Constructor = Vue.extend(Toast);
let toast = new Constructor({propsData});
toast.$slots.default = message;
//slots放在$mount前面
toast.$mount();
document.body.appendChild(toast.$el);
- props的属性的默认值不能是一个对象,但可以是一个函数返回一个对象
- 假slot: 实现可以传html进入插槽
- 解决text传入过多的内容,高度自适应。高度写成最小高度,那么子元素的高度100%就不生效了
- 如果眼睛看到的不为0 ,而JS打出来是0,一般就是异步的问题,解决方案尝试用this.$nextTick(()=>{})加入到队列中