+++ /dev/null
-<template>
- <div>
- <p>try to leave</p>
- <p id="tries">So far, you tried {{ tries }} times</p>
- </div>
-</template>
-
-<script>
-// @ts-check
-import { defineComponent, ref } from 'vue'
-import { onBeforeRouteLeave } from '../../src'
-
-export default defineComponent({
- name: 'GuardedWithLeave',
-
- setup() {
- console.log('setup in cant leave')
- const tries = ref(0)
-
- onBeforeRouteLeave(function(to, from, next) {
- if (window.confirm()) next()
- else {
- tries.value++
- next(false)
- }
- })
- return { tries }
- },
-})
-</script>
-import { createRouter, createWebHistory, useRoute } from '../../src'
+import { createRouter, createWebHistory, onBeforeRouteLeave } from '../../src'
import { RouteComponent } from '../../src/types'
-import { createApp } from 'vue'
-import GuardedWithLeave from './GuardedWithLeave'
-
-// const component: RouteComponent = {
-// template: `<div>A component</div>`,
-// }
+import { createApp, ref } from 'vue'
const Home: RouteComponent = {
template: `<div>Home</div>`,
}
-// const Document: RouteComponent = {
-// template: `<div>Document: {{ route.params.id }}</div>`,
-// setup() {
-// return { route: useRoute() }
-// },
-// }
+const GuardedWithLeave: RouteComponent = {
+ name: 'GuardedWithLeave',
+
+ template: `
+ <div>
+ <p>try to leave</p>
+ <p id="tries">So far, you tried {{ tries }} times</p>
+ </div>
+ `,
+
+ setup() {
+ console.log('setup in cant leave')
+ const tries = ref(0)
+
+ onBeforeRouteLeave(function(to, from, next) {
+ if (window.confirm()) next()
+ else {
+ tries.value++
+ next(false)
+ }
+ })
+ return { tries }
+ },
+}
const router = createRouter({
history: createWebHistory('/' + __dirname),
],
})
-const app = createApp({
- setup() {
- const route = useRoute()
- return { route }
- },
-})
+const app = createApp({})
app.use(router)
window.vm = app.mount('#app')
const { resolve, join } = require('path')
const HtmlWebpackPlugin = require('html-webpack-plugin')
const webpack = require('webpack')
-const { VueLoaderPlugin } = require('vue-loader')
/** @type {string[]} */
let examples = []
test: /\.ts$/,
use: 'ts-loader',
},
- {
- test: /\.vue$/,
- use: 'vue-loader',
- },
{
test: /\.css$/,
use: ['style-loader', 'css-loader'],
extensions: ['.ts', '.tsx', '.js', '.vue'],
},
plugins: [
- new VueLoaderPlugin(),
new webpack.DefinePlugin({
__DEV__: JSON.stringify(process.env.NODE_ENV !== 'production'),
__BROWSER__: `typeof window !== 'undefined'`,