Commit faf3c62b authored by Evan You's avatar Evan You

include router

parent 0e4d38c5
...@@ -4,7 +4,8 @@ ...@@ -4,7 +4,8 @@
"author": "Evan You <yyx990803@gmail.com>", "author": "Evan You <yyx990803@gmail.com>",
"private": true, "private": true,
"scripts": { "scripts": {
"start": "node server", "dev": "node server",
"start": "NODE_ENV=production node server",
"build": "npm run build:client && npm run build:server", "build": "npm run build:client && npm run build:server",
"build:client": "NODE_ENV=production webpack --config webpack.client.config.js --progress --hide-modules", "build:client": "NODE_ENV=production webpack --config webpack.client.config.js --progress --hide-modules",
"build:server": "NODE_ENV=production webpack --config webpack.server.config.js --progress --hide-modules" "build:server": "NODE_ENV=production webpack --config webpack.server.config.js --progress --hide-modules"
...@@ -14,7 +15,7 @@ ...@@ -14,7 +15,7 @@
"serialize-javascript": "^1.3.0", "serialize-javascript": "^1.3.0",
"serve-favicon": "^2.3.0", "serve-favicon": "^2.3.0",
"vue": "^2.0.0-beta.6", "vue": "^2.0.0-beta.6",
"vue-router": "^2.0.0-beta.4", "vue-router": "^2.0.0-rc.1",
"vue-server-renderer": "^2.0.0-beta.6", "vue-server-renderer": "^2.0.0-beta.6",
"vuex": "^2.0.0-rc.3" "vuex": "^2.0.0-rc.3"
}, },
......
...@@ -65,7 +65,13 @@ app.get('*', (req, res) => { ...@@ -65,7 +65,13 @@ app.get('*', (req, res) => {
const renderStream = renderer.renderToStream(context) const renderStream = renderer.renderToStream(context)
let firstChunk = true let firstChunk = true
res.write('<!DOCTYPE html><body>') res.write(`<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<title>vue-hackernews-2.0</title>
</head>
<body>`)
renderStream.on('data', chunk => { renderStream.on('data', chunk => {
if (firstChunk) { if (firstChunk) {
...@@ -81,7 +87,7 @@ app.get('*', (req, res) => { ...@@ -81,7 +87,7 @@ app.get('*', (req, res) => {
}) })
renderStream.on('end', () => { renderStream.on('end', () => {
res.end(`<script src="/dist/client-bundle.js"></script></body>`) res.end(`<script src="/dist/client-bundle.js"></script></body></html>`)
}) })
renderStream.on('error', err => { renderStream.on('error', err => {
......
...@@ -2,6 +2,11 @@ ...@@ -2,6 +2,11 @@
<div id="app"> <div id="app">
<img src="./assets/logo.png"> <img src="./assets/logo.png">
<h1>{{ msg }}</h1> <h1>{{ msg }}</h1>
<ul>
<li><router-link to="/">News</router-link></li>
<li><router-link to="/about">About</router-link></li>
</ul>
<router-view></router-view>
</div> </div>
</template> </template>
......
import Vue from 'vue' import Vue from 'vue'
import Router from 'vue-router'
import App from './App.vue' import App from './App.vue'
import News from './views/News.vue'
import About from './views/About.vue'
Vue.use(Router)
export const router = new Router({
mode: 'history',
routes: [
{ path: '/', component: News },
{ path: '/about', component: About }
]
})
export const app = new Vue({ export const app = new Vue({
router,
render: h => h(App) render: h => h(App)
}) })
import { app } from './app' import { app, router } from './app'
export default app export default context => {
router.setInitialLocation(context.url)
return app
}
<template>
<div>
<h2>About</h2>
<p>hohoho</p>
</div>
</template>
<template>
<div>
<h2>News</h2>
<p>hihihi</p>
</div>
</template>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment