itsource

VueJs에서 특정 경로 데이터를 경로 이름으로 가져오려면 어떻게 해야 합니까?

mycopycode 2022. 8. 30. 22:28
반응형

VueJs에서 특정 경로 데이터를 경로 이름으로 가져오려면 어떻게 해야 합니까?

VueJs에서는 항상 현재 경로 데이터에 액세스할 수 있지만 이름으로 다른 경로의 데이터에 액세스하려면 어떻게 해야 합니까?경로가 정의되어 있다고 가정합니다.

[
    {
        name: "dashboard",
        path: "/",
        component: Dashboard,
        meta: {
            title: "Dashboard",
        }
    },
    {
        name: "login",
        path: "/login",
        component: Login,
        meta: {
            title: "Login",
        }
    }
]

이제 대시보드 경로에 있다고 가정합니다.다음 방법으로 데이터에 액세스할 수 있습니다.this.$route그러나 login이라는 이름의 루트의 메타데이터에 액세스하려면 어떻게 해야 합니까?라는 이름의 루트의 오브젝트를 반환하는 함수가 있습니까?login?

해결 방법을 사용하여 루트 이름을 다음과 같은 경로로 변환할 수 있습니다.

const { href } = this.$router.resolve({
  name: 'password-change',
});

자세한 내용은 다음을 참조하십시오.

const { route } = this.$router.resolve({
  name: 'password-change',
});

그 대신 루트 경로, 메타, 매개 변수 등을 포함하는 개체를 얻을 수 있습니다.

이를 사용하여 루트에 액세스할 수 있습니다.$140

this.$router.options.routes[0].meta

물론 올바른 경로를 잡아야 합니다.


갱신하다

물론 어레이에서 반복할 수 있습니다.

getRoute: function (routeName) {
  let result = this.$router.options.routes.find(i => i.name === routeName)
  if (result == null) {
    this.$router.options.routes.forEach(element => {
      if (element.children) {
        let route = element.children.find(i => i.name === routeName)
        if (route != null) {
          result = route
        }
      }
    })
  }
  return result
},

언급URL : https://stackoverflow.com/questions/58235509/how-to-get-a-specific-route-data-by-route-name-in-vuejs

반응형