vue3返回键 写一个back.vue文件,点击这个按钮返回浏览页面历史上一页,直到首页index,版本vue3,格式 <h6 ref="backButton" @click="goBack" class="fa fa-angle-left"></h6>
时间: 2024-09-15 13:14:46 浏览: 19
在Vue3中,要实现在点击`<h6>`标签返回历史页面的功能,你可以利用浏览器的历史API配合Vuex(状态管理库)来保存和管理路由历史。首先,确保已经安装了Vue Router插件,并在项目中设置了路由。
```html
<!-- back.vue -->
<template>
<div>
<button @click.prevent="goBack" class="fa fa-angle-left" :disabled="!canGoBack">
<h6 ref="backButton">返回</h6>
</button>
</div>
</template>
<script setup>
import { useRouter } from 'vue-router';
import { useStore } from './store.js'; // 假设你在main.js中已导入store
const router = useRouter();
const store = useStore();
let canGoBack = true;
function goBack() {
if (router.appHistory.length > 1) {
router.appHistory.back();
// 如果是从首页跳转到这里的,清除历史记录
if (router.currentRoute.name === 'home') {
store.dispatch('clearHistory');
}
} else {
canGoBack = false; // 当回到首页时禁用返回按钮
}
}
</script>
<style scoped>
.fa-angle-left {
/* 样式 */
}
</style>
```
在这个例子中,我们使用`useRouter`获取当前路由实例,然后在`goBack`函数里通过`.appHistory`属性操作浏览器历史。同时,在每次点击后检查是否还有历史页面,如果没有,则禁用返回按钮。
还需要在store.js中添加相关的action和mutation来处理清除历史记录的操作:
```javascript
// store.js
export const actions = {
clearHistory({ commit }) {
commit('setAppHistory', []);
},
};
export const mutations = {
setAppHistory(state, newHistory) {
state.appHistory = newHistory;
},
};
```
确保在入口文件如main.js中设置并引入store,以及在需要的地方注册路由,并给路由配置名称,如`{ path: '/home', name: 'home' }`。