Skip to content

Commit

Permalink
decouple renderer logic and web platform
Browse files Browse the repository at this point in the history
  • Loading branch information
yyx990803 committed Apr 25, 2016
1 parent ae7054f commit f629b34
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 20 deletions.
3 changes: 2 additions & 1 deletion build/alias.js
Expand Up @@ -5,5 +5,6 @@ module.exports = {
compiler: path.resolve(__dirname, '../src/compiler'),
core: path.resolve(__dirname, '../src/core'),
shared: path.resolve(__dirname, '../src/shared'),
web: path.resolve(__dirname, '../src/platforms/web')
web: path.resolve(__dirname, '../src/platforms/web'),
server: path.resolve(__dirname, '../src/server')
}
6 changes: 6 additions & 0 deletions build/build.js
Expand Up @@ -63,6 +63,12 @@ build([
format: 'cjs',
external: ['entities'],
out: 'dist/compiler.common.js'
},
// Web server renderer
{
entry: 'src/entries/web-server-renderer.js',
format: 'cjs',
out: 'dist/server-renderer.js'
}
])

Expand Down
19 changes: 17 additions & 2 deletions src/entries/web-server-renderer.js
@@ -1,3 +1,18 @@
import { createComponentRenderer } from 'web/server/create-renderer'
import { createRenderer } from 'server/create-renderer'
import attrs from 'web/server/modules/attrs'
import klass from 'web/server/modules/class'
import style from 'web/server/modules/style'
import show from 'web/server/directives/show'
import { isUnaryTag } from 'web/util/index'

export default createComponentRenderer()
export default createRenderer({
isUnaryTag,
modules: {
attrs,
style,
class: klass
},
directives: {
show
}
})
@@ -1,20 +1,8 @@
import renderAttrs from './modules/attrs'
import renderClass from './modules/class'
import renderStyle from './modules/style'
import show from './directives/show'
import { isUnaryTag } from 'web/util/index'

export function createComponentRenderer (options = {}) {
const modules = Object.assign({
attrs: renderAttrs,
style: renderStyle,
class: renderClass
}, options.modules)

const directives = Object.assign({
show
}, options.directives)

export function createRenderer ({
modules = {},
directives = {},
isUnaryTag = (() => false)
} = {}) {
function renderComponent (component) {
component.$mount()
return renderElement(component._vnode)
Expand Down

0 comments on commit f629b34

Please sign in to comment.