文章目录
- 前言
- 一、实现方法
- 1.创建 BackTop 组件
- 2.全局注册组件
- 3.使用组件
- 二、组件效果
- 总结
前言
在开发 vue 项目时,我们都可能用到 element-ui,但是有时 element-ui 提供的组件太简单或不满足应用的需求,因此我们需要在其基础上再对组件进行封装。
一、实现方法
需先在项目中安装 element-ui:Vue项目使用element-ui
1.创建 BackTop 组件
在 components 文件夹创建 backTop 文件夹,然后在 backTop 文件夹中再创建 BackTop.vue 。
BackTop.vue 代码如下:
<template>
<div class="pages-content-scroll">
<el-backtop target=".pages-content-scroll"></el-backtop>
<slot></slot>
</div>
</template>
<script>
export default {
name: 'BackTop',
components: {},
props:{},
data(){
return{}
},
methods:{},
mounted(){
}
}
</script>
<style scoped lang="scss">
.pages-content-scroll{
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
overflow-x: hidden;
}
</style>
2.全局注册组件
在项目根目录下创建 globalComponents 文件夹,在其下新建 index.js, 用于注册全局组件
index.js 代码如下:
import Vue from "vue"
import BackTop from "../components/backTop/BackTop"
Vue.component('backTop', BackTop)
3.使用组件
1.在 views 文件夹下新建两个视图:BackTopOne.vue 和 BackTopTwo.vue
BackTopOne.vue 代码如下:
<template>
<div >
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
<div>这是回到顶部页面1</div>
</div>
</template>
<script>
export default {
name: 'BackTopOne',
components: {},
props:{},
data(){
return{}
},
methods:{},
mounted(){
}
}
</script>
BackTopTwo.vue 代码如下:
<template>
<div >
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
<div>这是回到顶部页面2</div>
</div>
</template>
<script>
export default {
name: 'BackTopTwo',
components: {},
props:{},
data(){
return{}
},
methods:{},
mounted(){
}
}
</script>
2.配置页面路由
router 中的 index.js 代码如下:
import Vue from 'vue'
import VueRouter from 'vue-router'
import Home from '../views/Home.vue'
Vue.use(VueRouter)
const routes = [
{
path: '/',
name: 'Home',
component: Home
},
{
path: '/backTopOne',
name: 'backTopOne',
component: () => import('../views/BackTopOne')
},
{
path: '/backTopTwo',
name: 'backTopTwo',
component: () => import('../views/BackTopTwo')
}
]
const router = new VueRouter({
mode: 'history',
base: process.env.BASE_URL,
routes
})
export default router
3.在Home.vue 实现两个页面跳转按钮
Home.vue 代码如下:
<template>
<div >
<el-button
type="primary"
@click="goTo('/backTopOne')">
去往页面1
</el-button>
<el-button
type="primary" @click="goTo('/backTopTwo')">
去往页面2
</el-button>
</div>
</template>
<script>
export default {
name: 'Home',
components: {
},
methods:{
goTo(path){
this.$router.push(path)
}
}
}
</script>
4.在App.vue 使用全局注册的 backTop 组件
App.vue 代码如下:
<template>
<div >
<backTop>
<router-view/>
</backTop>
</div>
</template>
<style lang="scss">
</style>
二、组件效果
1.点击前往页面1按钮,进入页面1
2.下拉滚动条,会出现回到顶部按钮,点击即可回到顶部
3.点击前往页面2按钮,进入页面2
4.下拉滚动条,会出现回到顶部按钮,点击即可回到顶部
总结
以上内容我们在 element-ui 的基础上,对 el-backtop 组件再封装,使之可以在全局中使用,视图的内容插入其中,而无需单独调用。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)