Giter VIP home page Giter VIP logo

vue-typed's Introduction

VueTyped

vue-typed

VueTyped contains sets of ECMAScript / Typescript decorators that helps you write Vue component easily.

npm version Build status Build Status GitHub issues GitHub license

What is this for?

Normaly you wrote Vue application like this:

new Vue({
  template: 
  `<div>
    <input type="text" v-model="message">
    <button v-on:click="clear">Clear</button>
    <div>{{status}}</div>
  </div>`,
  data: function() {
    return {
      message: 'Hello!'
    }
  },
  computed: {
    status: function() {
      return this.message.length < 15 ? 'Too short... type some more...' : 'Alright, stop typing now..'
    }
  },
  methods: {
    clear: function() {
      this.message = ''
    }
  }
}).$mount('#app')

See live demo here

It could be mess if you bring the code above in Typescript world. The usage of keyword this could lead unexpected error. VueTyped makes you possible to write Vue with Typescript or ES6 with no hassle. VueTyped insipired by vue-class-component.

With VueTyped you'll write code above in Typescript like this:

import * as Vue from 'vue'
import { Component } from 'vue-typed'

@Component({
  template: `
  <div>
    <input type="text" v-model="message">
    <button v-on:click="clear">Clear</button>
    <div>{{status}}</div>
  </div>`,
}) 
class App extends Vue {
  message:string = 'Hello!'
  
  get status() {
    return this.message.length < 15 ? 'Too short... type some more...' : 'Alright, stop typing now..'
  }
  
  clear() {
    this.message = ''
  }
}

new App().$mount('#app')

See live demo here

Installation

NPM

$ npm install vue-typed

Bower

$ bower install vue-typed

CLI

If you are start with a new project, then it's good to use vue-typed-boilerplate to scaffold your new project. This boilerplate setup typescript project using webpack as the module bundler.

$ npm install -g vue-cli
$ vue init vue-typed/vue-typed-boilerplate my-project
$ cd my-project
$ npm install
$ npm start

Compatibility

Vue 2.0 or above

For older Vue supports please refer to VueTyped 2.0.1.

Typescript 2.2.2 or above

License

MIT

vue-typed's People

Contributors

adionob avatar budiadiono avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.