Skip to content

Commit 40f0948

Browse files
authored
Fix usePage() reactivity in Vue 2 adapter (#1527)
* Change minimum required version of Vue to 2.7 * Make `usePage()` reactive
1 parent e6d5245 commit 40f0948

File tree

4 files changed

+15
-8
lines changed

4 files changed

+15
-8
lines changed

package-lock.json

+3-3
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

packages/vue2/package.json

+2-2
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@
5252
"devDependencies": {
5353
"esbuild": "^0.16.13",
5454
"typescript": "^4.9.4",
55-
"vue": "^2.6.0"
55+
"vue": "^2.7.0"
5656
},
5757
"peerDependencies": {
58-
"vue": "^2.6.0"
58+
"vue": "^2.7.0"
5959
},
6060
"dependencies": {
6161
"@inertiajs/core": "1.0.4",

packages/vue2/src/app.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { createHeadManager, Page, router } from '@inertiajs/core'
2-
import { Component, PluginObject } from 'vue'
2+
import { Component, computed, PluginObject, reactive } from 'vue'
33
import { ComponentOptions } from 'vue/types/umd'
44
import remember from './remember'
55
import { VuePageHandlerArgs } from './types'
@@ -124,5 +124,10 @@ export const plugin: PluginObject<any> = {
124124
}
125125

126126
export function usePage() {
127-
return app.page
127+
return reactive({
128+
props: computed(() => app.page.props),
129+
url: computed(() => app.page.url),
130+
component: computed(() => app.page.component),
131+
version: computed(() => app.page.version),
132+
})
128133
}

playgrounds/vue2/resources/js/Components/Layout.vue

+3-1
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,9 @@
22
import { Link, usePage } from '@inertiajs/vue2'
33
import { computed } from 'vue'
44
5-
const appName = computed(() => usePage().props.appName)
5+
const page = usePage()
6+
7+
const appName = computed(() => page.props.appName)
68
</script>
79

810
<template>

0 commit comments

Comments
 (0)