在vue中封装可复用的组件方法

本次封装的组件以toast组件为例

以前使用移动端ui插件时,通过一句代码比如

$.toast( ‘ 需要显示内容 ' )

,从而在页面上展示这段文字,并在一定时间后消失。

现在我们也尝试自己封装toast组件。

准备工作:vue-cli脚手架工程

先看一下涉及到的文件目录截图:

这次的封装主要涉及的文件是Toast.vue toast.js Hello.vue,主要思路如下:

① Toast.vue是我们要使用的toast组件;

② toast.js里面用

Vue.extend()

扩展一个组件构造器,然后通过实例化组件构造器,就可创造出可复用的组件。

最后在toast.js里面导出函数myToast,函数myToast里面的逻辑在代码里面有解释;

③ Hello.vue里调用函数显示组件。

Toast.vue代码

rush:xhtml;">

Toast.js代码

let myToast = ()=>{
let toastDom = new ToastConstructor({
el:document.createElement('div') //将toast组件挂载到新创建的div上
})
document.body.appendChild( toastDom.$el ) //把toast组件的dom添加到body里
}
export default myToast;

Hello.vue代码

rush:xhtml;">

通过以上步骤,离真正的toast效果还是有区别的,我们要达到的效果是让显示内容在一段时间后消失,那么,得从toast.js里面修改,得重新写myToast函数,给他设置两个传入参数,一个显示内容一个显示的时间。

toast.js修改后的代码如下:

let myToast = (text,duration)=>{
let toastDom = new ToastConstructor({
el:document.createElement('div') //将toast组件挂载到新创建的div上
})
document.body.appendChild( toastDom.$el ) //把toast组件的dom添加到body里

toastDom.text = text;
toastDom.duration = duration;

// 在指定 duration 之后让 toast消失
setTimeout(()=>{
toastDom.isShow = false;
},toastDom.duration);
}
export default myToast;

那么,现在我们在Hello.vue中调用的时候就应该是这样了:

this.$toast('新内容',2000);

我们的组toast组件可以正常使用了!

以上这篇在vue中封装可复用的组件方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程之家。

相关文章

可以通过min-width属性来设置el-table-column的最小宽度。以...
yarn dev,当文件变动后,会自动重启。 yanr start不会自动重...
ref 用于创建一个对值的响应式引用。这个值可以是原始值(如...
通过修改 getWK005 函数来实现这一点。这里的 query 参数就是...
<el-form-item label="入库类型" ...
API 变动 样式类名变化: 一些组件的样式类名有所变动,可能需...