Paysage
Paysage is a helper for quickly and easily creating web components based on Vuejs.
Installation
npm install paysage
Usage
Component static props = 'to'; { return `<div>Hello {{ to }}</div>` ; } Paysage;Paysage;
Draw and JSX
For creating HTML markup you must implement draw
method:
Component { return `<div> Hello World </div>` ; }
Or define static template:
Component static draw = '<div>Hello World</div>';
Also you can build HTML with createElement
function:
Component { return ; }
More about render function at https://vuejs.org/v2/guide/render-function.html
JSX also support with https://github.com/vuejs/babel-plugin-transform-vue-jsx plugin
Component // h must be in scope { return <div>Hello World</div> ; }
Properties
You should not use the following names as properties or class methods,
because they have special meanings in Vue:
template
, render
, renderError
,
props
, propsData
, computed
,
watch
, name
, delimiters
,
functional
, model
, mixins
,
components
, directives
, filter
,
inheritAttrs
But if you define them, then they will work according to the built-in Vue logic.
Properties can be defined by two way:
Component /* define static property, common for all instances */ static props = 'foo'; { super; /* define property on fly, each instance has own variable copy */ thisbar = 'Bar'; } { return /* {{ foo }} and {{ bar }} available here, and in any method defined in this class */ ; }
More about properties at https://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function
Computed
All getters and setters will be processed as computed properties:
Component { return thisfirstName + ' ' + thislastName; } { var names = newValue; thisfirstName = names0; thislastName = namesnameslength - 1; }
More about computed properties at https://vuejs.org/v2/guide/computed.html
Events
Next events you can use as Vue's lifecycle hooks
- beforeCreate
- created
- beforeMount
- mounted
- beforeUpdate
- updated
- activated
- deactivated
- beforeDestroy
- destroyed
- errorCaptured
Component { ... } { ... } { ... }
More about hooks at https://vuejs.org/v2/guide/instance.html#Lifecycle-Diagram
Register
You must register component before use:
/*component - component instancename - component name, default equal instance name*/Paysage
Mount
Mount component to DOM:
/*selector - string or HTMLElement instancecomponent - HTML markup or component instanceoptions - additional Vue options*/Paysage
ES5
If you wanna use it without transpilling, use createClass
helper:
var HelloWorld = Paysage Paysage;