Giter VIP home page Giter VIP logo

vue-promised's Introduction

vue-promised Build Status npm package coverage thanks

Transform your Promises into components

Installation

npm install --save vue-promised
# or
yarn add vue-promised

Usage

Import the component to use it

import Promised from 'vue-promised'

Vue.component('Promised', Promised)

promise should be a Promise. data will contain the result of the promise. You can of course name it the way you want:

<Promised :promise="promise">
  <!--
    Use the default slot for loading content
    Make sure to have ONLY 1 NODE
    (you can always nest things inside of a div
  -->
  <h1 slot="pending">Loading</h1>
  <!-- The default scoped slots will be used as the result -->
  <h1 slot="then" slot-scope="data">Success!</h1>
  <!-- The 'catch' named scoped slots will be used if there is an error -->
  <h1 slot="catch" slot-scope="error">Error: {{ error.message }}</h1>
</Promised>

You can omit the pending and then names, VuePromised will pick them up automatically, resulting in a more concise writing:

<Promised :promise="promise">
  <h1>Loading</h1>
  <h1 slot-scope="data">Success!</h1>
  <h1 slot="catch" slot-scope="error">Error: {{ error.message }}</h1>
</Promised>

You can also pass an array of Promises with the prop promises but keep in mind the order is not maintained for the resolved items:

<Promised :promises="promises">
  <h2>Wating for first result</h2>
  <h2 slot-scope="items">
    Succeeded {{ items.length }} times
  </h2>
  <h2 slot="catch" slot-scope="errors">
    Failed {{ errors.length }} promises
  </h2>
</Promised>

API Reference

Promised component

Promised will watch its prop promise and change its state accordingly.

props

Name Description Type
promise Promise to be resolved Promise
promises Array of Promises to be resolved Promise

slots

pending and then slots are provided in case you prefer a more explicit approach.

Name Description Scope
default Content to display while the promise is pending โ€”
default Content to display once the promise has been successfully resolved data: resolved value
catch Content to display if the promise is rejected error: rejection reason
pending Same as non scoped default โ€”
then Same as scoped default data: resolved value

License

MIT

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.