typescript - Hvordan få parametere fra routeren i Vue 3?
Jeg laget et prosjekt i Vue.js 3 og TypeScript.
router.js
{
path: "/app/:id",
name: "Detail",
component: Detail,
props: true
},
App.js
<script lang="ts">
...
onMounted(() => {
const id = $route.params.id;
...
});
Men dette resulterer i en feil:
"Kan ikke finne navnet '$route'."
Hva gjør jeg galt?
Svar #1
Vue Router 4.x tilbyr useRoute() for det:
import { useRoute } from 'vue-router'
export default {
setup() {
const route = useRoute()
onMounted(() => {
const id = route.params.id
})
}
}
demo
Svar #2
Hvis vi bruker den nyeste Vue 3 'script setup' SFC-måten, så
<script setup>
import { useRoute } from 'vue-router';
const route = useRoute();
const id = route.params.id; // read parameter id (it is reactive)
</script>
