Vue返回顶部按钮组件封装
Vue返回顶部按钮组件封装
BackTo 组件的template部分
<template> <div class="BackTo"> <van-icon name="upgrade" size="30px" color="orange"/> </div> </template> <script> export default { name: "BackTo", } </script> <style scoped> .BackTo{ position: absolute; right: 1.39vw; bottom: 13.89vw; } </style>
JS部分
-
**注意:**这里使用了Vue的混入封装思想 //Vue的混入封装,因为很多组件都用到了这个方法,所以我们需要将其封装起来,以后使用方便
//BackTop import BackTo from "@/components/content/BackTo"; export const backTopMixin = { data(){ return{ isShow:false, } }, components:{ BackTo }, methods:{ //返回顶部操作 BackTo(){ this.$refs.BScroll.scrollTo(0,0,300) }, showBackTopBnt(position){ //显示返回顶部按钮 this.isShow = -(position.y) > 800 } } }
-
this.$refs.BScroll.scrollTo(0,0,300)调用的是Better-Scroll插件里面的方法 scrollTo(0,0,300) scrollTo(x,y,time=300){ this.scroll.scrollTo(x,y,time) } // x表示横轴坐标,y表示纵轴坐标,time表示延迟的时间
BackTo组件的使用
-
导入混入
import {backTopMixin} from "@/common/mixin/mixin"; //backTopMixin是将backTo混入封装给函数起的名字, // "@/common/mixin/mixin";保存混入模式的路径
-
引用混入
mixins:[backTopMixin],
-
给BackTo绑定事件
<back-to @click.native="BackTo" v-show="isShow"></back-to> //@click.native因为给组件绑定事件,所以不能直接用@click,而是用/@click.native
BackTo(){ this.$refs.BScroll.scrollTo(0,0,300) },
总结
Mixin对于封装一小段想要复用的代码来讲是有用的,Mixin的优点是不需要传递状态,但缺点也显而易见可能会被滥用;
上一篇:
通过多线程提高代码的执行效率例子
下一篇:
两种交换类排序(冒泡排序,快速排序)