小编Rob*_*Whg的帖子

Vue Router - 滚动时更改路由中的锚点

我基本上试图在我的网站上拥有与这里完全相同的路由行为:https : //router.vuejs.org/guide/#html。请注意,当您向下滚动时,链接会更改为https://router.vuejs.org/guide/#javascript。向上滚动,反之亦然。重新加载页面时,您的位置将被保存。

我向我的路由器添加了以下滚动行为:

  scrollBehavior(to, from, savedPosition) {
    if (to.hash) {
        return { selector: to.hash }
    } else if (savedPosition) {
        return savedPosition;
    } else {
        return { x: 0, y: 0 }
    }

Run Code Online (Sandbox Code Playgroud)

现在我可以跳到一个带有链接的锚点,并且路线会发生变化。这就是我所了解的。以 Vue Router 网站为例有点讽刺,但无论如何 - 我怎样才能复制它的行为?

javascript url-routing vue.js vue-router

8
推荐指数
1
解决办法
1603
查看次数

Vue + Pinia + Firebase 身份验证:在 Route Guard 之前获取 currentUser

最近我开始使用 Pinia 作为我的 Vue 3 项目的全局商店。我使用 Firebase 进行用户身份验证,并尝试在 Vue 初始化之前加载当前用户。理想情况下,所有与身份验证相关的内容都应该位于 Pinia 商店的单个文件中。不幸的是(与 Vuex 不同),在我可以使用任何操作之前,需要将 Pinia 实例传递给 Vue 实例,我相信这就是问题所在。首次加载时,user存储中的对象会短暂空置。

这是绑定用户的存储操作(使用新的 Firebase Web v9 Beta)auth.js

import { defineStore } from "pinia";
import { firebaseApp } from "@/services/firebase";
import {
  getAuth,
  onAuthStateChanged,
  getIdTokenResult,
} from "firebase/auth";

const auth = getAuth(firebaseApp);

export const useAuth = defineStore({
  id: "auth",
  state() {
    return {
      user: {},
      token: {},
    };
  },
  actions: {
    bindUser() {
      return new Promise((resolve, reject) => {
        onAuthStateChanged( …
Run Code Online (Sandbox Code Playgroud)

asynchronous firebase vue.js firebase-authentication vuejs3

3
推荐指数
1
解决办法
4485
查看次数