在vue中如何实现封装可复用的组件

下面我就为大家分享一篇在vue中封装可复用的组件方法,具有很好的参考价值,希望对大家有所帮助。

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

以前使用移动端ui插件时,通过一句代码比如 $.toast( ‘ 需要显示的内容 ‘ ),从而在页面上展示这段文字,并在一定时间后消失。

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

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

立即学习“前端免费学习笔记(深入)”;

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

在vue中如何实现封装可复用的组件

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

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

② toast.js里面用Vue.extend()扩展一个组件构造器,然后通过实例化组件构造器,就可创造出可复用的组件。

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

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

Toast.vue代码:

{{ text }}

export default{data(){return {text:'内容',isShow:true,duration:1500}}}*{margin: 0;padding: 0;}.toast{ position: fixed; left: 50%; transform: translate(-50%, 0); margin-top: 5rem; background: #000000; line-height: 0.7rem;color: #FFFFFF;padding: 0 0.2rem;border-radius: 0.2rem;}

登录后复制

Toast.js代码:

import Vue from 'vue'; import Toast from '@/components/Toast'; //引入组件 let ToastConstructor = Vue.extend(Toast) // 返回一个“扩展实例构造器”  let myToast = ()=>{  let toastDom = new ToastConstructor({  el:document.createElement('p') //将toast组件挂载到新创建的p上  })  document.body.appendChild( toastDom.$el ) //把toast组件的dom添加到body里 } export default myToast;

登录后复制

Hello.vue代码:

 

  

import Vue from 'vue';import toast from './js/toast'; //引入toast函数Vue.prototype.$toast = toast; //给Vue对象添加$toast方法export default { name: 'hello', data () { return { } }, methods:{ showToast(){ this.$toast(); //现在就可以调用了 } }}

登录后复制

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

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

import Vue from 'vue'; import Toast from '@/components/Toast'; //引入组件 let ToastConstructor = Vue.extend(Toast) // 返回一个“扩展实例构造器”  let myToast = (text,duration)=>{  let toastDom = new ToastConstructor({  el:document.createElement('p') //将toast组件挂载到新创建的p上  })  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中v-for的数据分组实例

使用vue中的v-for遍历二维数组的方法

JavaScript中使用import 和require打包后实现原理分析

以上就是在vue中如何实现封装可复用的组件的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2751162.html

(0)
上一篇 2025年3月8日 05:47:53
下一篇 2025年3月3日 12:13:19

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在vue中如何实现单一组件下动态修改数据时的全部重渲染

    下面我就为大家分享一篇浅谈vue单一组件下动态修改数据时的全部重渲染,具有很好的参考价值,希望对大家有所帮助。 今天在学习vue的过程中,发现一个有趣的现象。 在某一组件下的某一数据通过点击事件被动态修改的时候,对应view中的数据同步的进…

    编程技术 2025年3月8日
    200
  • 如何利用Vue组件实现弹窗功能

    这次给大家带来如何利用Vue组件实现弹窗功能,利用Vue组件实现弹窗功能的注意事项有哪些,下面就是实战案例,一起来看一下。 最近在使用element-ui框架,用到了Dialog对话框组件,大致实现的效果,跟我之前自己在移动端项目里面弄的一…

    2025年3月8日
    200
  • 在vue中如何实现父组件向子组件传递多个数据

    下面我就为大家分享一篇vue父组件向子组件传递多个数据的实例,具有很好的参考价值,希望对大家有所帮助。 在平时我们使用VUE组件的时候,经常需要将父组件的某些数据传递给子组件,这个时候,我们通常会有很多的办法,这里主要分为两种情况: 第一种…

    编程技术 2025年3月8日
    200
  • 怎样使用vue子组件向父组件传递数据

    这次给大家带来怎样使用vue子组件向父组件传递数据,使用vue子组件向父组件传递数据的注意事项有哪些,下面就是实战案例,一起来看一下。 如下图所示: 当没有任何操作的时候父组件的值是 0 当点击加号以后父组件的值是 1 当点击减号以后父组件…

    2025年3月8日
    200
  • 在vue-star中如何实现评星组件开发

    下面我就为大家分享一篇vue-star评星组件开发实例,具有很好的参考价值,希望对大家有所帮助。 star文件夹下建立Star.vue,及相关的图片信息。便于组件的就近维护 Star.vue:     const LENGTH = 5; c…

    2025年3月8日
    200
  • 在Vue2.0中如何实现子同级组件之间数据交互

    下面我就为大家分享一篇vue2.0子同级组件之间数据交互方法,具有很好的参考价值,希望对大家有所帮助。 熟悉了Vue.js的同级组件之间通信,写此文章,以便记录。 Vue是一个轻量级的渐进式框架,对于它的一些特性和优点,请在官网上进行查看,…

    2025年3月8日 编程技术
    200
  • 在使用React组件中转 Vue 组件的命令写法有哪些?

    本文先介绍两个框架的组件共性和不兼容的地方,再介绍react-to-vue的使用和原理,需要的朋友可以参考下 基于目前React和Vue比较火,开发react-to-vue 工具的目的是为了进一步提高组件的可复用用性,让组件复用不仅仅局限在…

    2025年3月8日
    200
  • 在vue中如何做到子组件向父组件传值

    下面我就为大家分享一篇vue 子组件向父组件传值方法,具有很好的参考价值,希望对大家有所帮助。 子组件注册触发事件,父组件注册 触发子组件事件后的方法写在method里面 父组件这么写 Do you like me? {{childWord…

    编程技术 2025年3月8日
    200
  • 在vue中如何使用全局提示框组件?

    这篇文章主要介绍了vue的全局提示框组件实例代码,需要的朋友可以参考下 这篇文章给大家介绍一个vue全局提示框组件,具体代码如下所示:            {{message}}   export default { data() { r…

    编程技术 2025年3月8日
    200
  • 使用vue如何制作Tab组件

    这篇文章主要给大家介绍了关于利用vue组件自定义v-model实现一个tab组件的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。 前言 最近在学习vue,今天…

    2025年3月8日
    200

发表回复

登录后才能评论