Skip to content

vueent/vueent

Repository files navigation

vueent

VueEnt is a library for building scalable Vue applications. See the documentation for more information.

Build Status lerna

Motivation

Vue is a wonderful web framework. Over the past few years, it has gained immense popularity. People use it every day at tons of projects. That projects are growing and Vue is growing too. The third version of the framework introduced us a new Composition API that allows to use reactivity outside of Vue components. The main problem of Vue, we think, is that it is positioned as a complete framework, but ties every application logic to the usage of its components. This approach works well for small applications, but doesn't for large tasks. In other words, your Vue components is the application that provides no instruments for the scaling. Do you remember the time when all your backend API calls were placed inside Vuex actions? Let's see Angular and Ember - all-in-one frameworks. They provides a prepared project structure and typical approaches, splits the business logic, the transport layer, and the view, but along with it brings some complex conceptions that inceases the threshold of entry. In contrast, React is just a UI library that is used by the application, therefore developers are free to choose between Redux, MobX, etc. Vue keeps its place in the middle. The modern Composition API gives us a free hand to share the code outside of components, but it doesn't tell us how. If you are agree, welcome under the hood.

Goals

The main goal of this project is to provide tools and typical approaches for building scalable web applications using Vue.

In the future, maybe, we'll replace a Vue 3/Vue Composition API dependency with @vue/reactivity and it will be possible to use VueEnt with React.

Non-goals

Although VueEnt offers its own version of the file structure for projects, it is not the goal to enforce any strict structure. The creation of yet another all-in-one framework based on Vue is not the VueEnt's goal too.

Installation

npm install --save-dev @vueent/<package_name>

VueEnt consists of four parts that can be used separately:

  • @vueent/reactive - typescript decorators which allows to use ref and computed properties transparently inside of classes
  • @vueent/core - a small library that integrates controllers and services patterns to the application (Vue-independent)
  • @vueent/mix-models - a library that provides reactive models classes for nosql models with optionally saving, rollback and live validations
  • @vueent/store - a library that provides collections of models

Quick start

If you want to try VueEnt and don't want to read all the documentation, see this special project.

git clone https://github.com/vueent/vueent-quick-start.git
cd vueent-quick-start
npm i
npm run dev

LICENSE

MIT

About

VueEnt is a library for building scalable Vue applications.

Resources

License

Stars

Watchers

Forks

Packages

No packages published