Laravel Vue.js - 包含 vue-router 的最简单方法?
Laravel Vue.js - easiest way to include vue-router?
在 bootstrap.js 中,我有这个:
window.Vue = require('vue');
window.events = new Vue();
现在我也想使用 vue-router 纯粹是为了访问 this.$route。最简单的方法是什么?我试图按照官方文档进行操作,但它与 laravel:
附带的内容有很大不同
const app = new Vue({
router
}).$mount('#app')
谢谢!
在app.js
import VueRouter from 'vue-router';
window.Vue = require('vue');
window.Vue.use(VueRouter);
import router from './config/routes';
const app = new Vue({
el: '#app',
router,
});
您可以将路由定义的代码提取到 ./config/routes.js 中,请参见以下示例:
import VueRouter from 'vue-router';
const routes = [
{path: '/', redirect: '/app/articles'},
...
];
const router = new VueRouter({routes});
export default router;
首先安装vue-router
.
然后在resources/assets/js
中创建一个新文件router.js
,并将这段代码放入其中。
import Router from 'vue-router'
Vue.use(Router)
/*
Make sure your pages components are inside `resources/assets/js/pages` folder
*/
const Home = require('./pages/Home.vue')
const Hello = require('./pages/Hello.vue')
const NotFound = require('./pages/NotFound.vue')
let router = new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'home',
component: Home
}, {
path: '/hello',
name: 'hello',
component: Hello
}, {
path: '*',
component: NotFound
}, ]
})
export default router
现在转到 app.js
文件并插入此代码:
import Vue from 'vue'
import router from './router.js'
const app = new Vue({
el: '#app',
router, // Add this to your Vue instance
//...
})
然后创建您的页面(在本例中为 Home.vue
、Hello.vue
和 NotFound.vue
)。
以下是使 laravel 路由和 vue 路由协同工作的步骤:
1。定义你的 vue 布局
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Project</title>
<link rel="stylesheet" href="/css/app.css">
</head>
<body>
<div id="app"></div>
<script src="/js/app.js"></script>
</body>
</html>
2。定义你的 laravel 路由让 vue-router 处理 url
Route::any('{all}', function(){
// welcome view should extend layout defined in step #1
return view('welcome');
})->where('all', '.*');
3。使用 vue-router 设置 vue
routes.js
import DashboardPage from './components/dashboard/dashboard.vue'
import SignupPage from './components/auth/signup.vue'
import SigninPage from './components/auth/signin.vue'
export const routes = [
{ path: '/signup', component: SignupPage },
{ path: '/signin', component: SigninPage },
{ path: '/dashboard', component: DashboardPage },
{ path: '*', redirec: '/' }
];
router.js
import VueRouter from 'vue-router';
import { routes } from './routes';
export const router = new VueRouter({
routes,
mode: 'history'
});
export default router
main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import { router } from './router'
Vue.use(VueRouter);
new Vue({
router: router,
render: h => h(App)
}).$mount('#app')
在 bootstrap.js 中,我有这个:
window.Vue = require('vue');
window.events = new Vue();
现在我也想使用 vue-router 纯粹是为了访问 this.$route。最简单的方法是什么?我试图按照官方文档进行操作,但它与 laravel:
附带的内容有很大不同const app = new Vue({
router
}).$mount('#app')
谢谢!
在app.js
import VueRouter from 'vue-router';
window.Vue = require('vue');
window.Vue.use(VueRouter);
import router from './config/routes';
const app = new Vue({
el: '#app',
router,
});
您可以将路由定义的代码提取到 ./config/routes.js 中,请参见以下示例:
import VueRouter from 'vue-router';
const routes = [
{path: '/', redirect: '/app/articles'},
...
];
const router = new VueRouter({routes});
export default router;
首先安装vue-router
.
然后在resources/assets/js
中创建一个新文件router.js
,并将这段代码放入其中。
import Router from 'vue-router'
Vue.use(Router)
/*
Make sure your pages components are inside `resources/assets/js/pages` folder
*/
const Home = require('./pages/Home.vue')
const Hello = require('./pages/Hello.vue')
const NotFound = require('./pages/NotFound.vue')
let router = new Router({
mode: 'history',
routes: [
{
path: '/',
name: 'home',
component: Home
}, {
path: '/hello',
name: 'hello',
component: Hello
}, {
path: '*',
component: NotFound
}, ]
})
export default router
现在转到 app.js
文件并插入此代码:
import Vue from 'vue'
import router from './router.js'
const app = new Vue({
el: '#app',
router, // Add this to your Vue instance
//...
})
然后创建您的页面(在本例中为 Home.vue
、Hello.vue
和 NotFound.vue
)。
以下是使 laravel 路由和 vue 路由协同工作的步骤:
1。定义你的 vue 布局
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>Project</title>
<link rel="stylesheet" href="/css/app.css">
</head>
<body>
<div id="app"></div>
<script src="/js/app.js"></script>
</body>
</html>
2。定义你的 laravel 路由让 vue-router 处理 url
Route::any('{all}', function(){
// welcome view should extend layout defined in step #1
return view('welcome');
})->where('all', '.*');
3。使用 vue-router 设置 vue
routes.js
import DashboardPage from './components/dashboard/dashboard.vue'
import SignupPage from './components/auth/signup.vue'
import SigninPage from './components/auth/signin.vue'
export const routes = [
{ path: '/signup', component: SignupPage },
{ path: '/signin', component: SigninPage },
{ path: '/dashboard', component: DashboardPage },
{ path: '*', redirec: '/' }
];
router.js
import VueRouter from 'vue-router';
import { routes } from './routes';
export const router = new VueRouter({
routes,
mode: 'history'
});
export default router
main.js
import Vue from 'vue'
import VueRouter from 'vue-router'
import App from './App.vue'
import { router } from './router'
Vue.use(VueRouter);
new Vue({
router: router,
render: h => h(App)
}).$mount('#app')