Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up

Vuejs Reactive Components

License

NotificationsYou must be signed in to change notification settings

undercloud/paysage

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

33 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Paysage is a helper for quickly and easily creating web components based on Vuejs.

Installation

npm install paysage

Usage

importPaysagefrom'./paysage'classHelloWorldextendsPaysage.Component{staticprops=['to'];draw(){return(`<div>Hello {{ to }}</div>`);}}Paysage.register(HelloWorld,'HelloWorld');Paysage.mount('#app','<HelloWorld to="World" />');

Draw and JSX

For creating HTML markup you must implementdraw method:

classSomeComponentextendsPaysage.Component{draw(){return(`<div>                Hello World            </div>`);}}

Or define static template:

classSomeComponentextendsPaysage.Component{staticdraw='<div>Hello World</div>';}

Also you can build HTML withcreateElement function:

classSomeComponentextendsPaysage.Component{draw(createElement){returncreateElement('div','Hello World');}}

More about render function athttps://vuejs.org/v2/guide/render-function.html

JSX also support withhttps://github.com/vuejs/babel-plugin-transform-vue-jsx plugin

classSomeComponentextendsPaysage.Component{// h must be in scopedraw(h){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:

classSomeComponentextendsPaysage.Component{/*        define static property,        common for all instances    */staticprops=['foo'];constructor(){super();/*            define property on fly,            each instance has own variable copy        */this.bar='Bar';}draw(){return(/*                {{ foo }} and {{ bar }} available here,                and in any method defined in this class             */);}}

More about properties athttps://vuejs.org/v2/guide/components.html#data-Must-Be-a-Function

Computed

All getters and setters will be processed as computed properties:

classSomeComponentextendsPaysage.Component{getfullName(){returnthis.firstName+' '+this.lastName;}setfullName(newValue){varnames=newValue.split(' ');this.firstName=names[0];this.lastName=names[names.length-1];}}

More about computed properties athttps://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
classSomeComponentextendsPaysage.Component{created(){        ...}mounted(){        ...}updated(){        ...}}

More about hooks athttps://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.register(component,name)

Mount

Mount component to DOM:

/*selector - string or HTMLElement instancecomponent - HTML markup or component instanceoptions - additional Vue options*/Paysage.mount(selector[,component[,options]])

ES5

If you wanna use it without transpilling, usecreateClass helper:

varHelloWorld=Paysage.createClass({constructor:function(){this.to='World';},draw:function(){return('<div>Hello {{ to }}</div>')}})Paysage.register(HelloWorld,'HelloWorld');

Releases

No releases published

Packages

No packages published

[8]ページ先頭

©2009-2025 Movatter.jp