Hi-Framework defines views as global Vue components.
The only thing special about them is that they are bound to to functional urls like: /create-student and /student/create and mapped to controller's actions.
For each view, will exist a controller/actionName.vue file.
Vue files are supposed to contain HTML, Javascript and CSS as the following example illustrates:
Vue files also support referencing scripts and stylesheets instead of putting them together:
<template>
<div>This will be pre-compiled</div>
</template>
<script src="./my-component.js"></script>
<style src="./my-component.css"></style>
The Each of the 3 tags might be filled with content to be pre-processed: typescript, sass, jade and whatever else.
view.html and view.js
This two files are transformed buring the pre-build phase by the Hi-Framework's webpack plugin.
The first thing that is done in the pre-build phase is the deletion of every file in the _generated
This two files are joined and a new view.vue file is created in the generated directory.
The generated directory will only contain vue files resultant of the join of html and js pairs.
The view.html file must contain HTML, on the other hand, the view.js must contain javascript and it can even indicate the preprocessor to be used to process it, on its first code line,
as the following example illustrates:
//typescript
//code comes here
//...
The view.vue file result of the join of the view.html and view.js files, follows the following name convention: controller-action.vue
View mode
Is a view.something.html file that has no view.something.js correspondent file but has a view.js correspondent file. During the vue files generation for view mode templates, the correspondent view.js will be applied.
4 - Integration of Webpack
Webpack would provide TypeScript and JSX compilation combined to Babel transpiler.
Invoke web-pack during maven build
The build (TypeScript and JSX) would be initiated automatically upon java sources
compilation.
5 - Framework Development using TypeScript
Take advantage of the static typing to detect issues earlier and also take advantage of the
ECMAScript6 features, with focus on modularization.
6 - Componentization
Hi-Frameworks was no function component concept in place. All it has are embedded views, which are an improvement to provide a component-like feature. Hi-Applications should assume functional componentization in order to increase code re-usability.
7 - Improve the frontiers code generation process - TypeScript
8 - Improve generation of hi-es5.js
9 - Improve template files and global events handling
10 - Server-side rendering support - only for initial page load
Redux integration (
Frontiers generation on server-side
Passing data from controller to View components
11 - i18N improvement - no more angular filtering (consider pre-processing)
1 - Stop building/redeploying to see UI changes (develop faster)
Template files must be executable, meaning they must run even without a server.
2 - Modularization of framework JavaScript
The framework should be blown into modules in order to allow easy testability and code maintainability.
core module - provides template engine plug-ability support.
routing module - provides routing (ajaxify and direct invocation routing)
frontier module - provide frontiers invocation and testing
3 - vue.js Integration
Views representation
Hi-Framework defines views as global Vue components. The only thing special about them is that they are bound to to functional urls like: /create-student and /student/create and mapped to controller's actions.
In Hi-Framework, views are vue single file components](https://vuejs.org/v2/guide/single-file-components.html) or two separated files: action.html and action.js.
Single component
For each view, will exist a controller/actionName.vue file. Vue files are supposed to contain HTML, Javascript and CSS as the following example illustrates:
Vue files also support referencing scripts and stylesheets instead of putting them together:
The Each of the 3 tags might be filled with content to be pre-processed: typescript, sass, jade and whatever else.
view.html and view.js
This two files are transformed buring the pre-build phase by the Hi-Framework's webpack plugin. The first thing that is done in the pre-build phase is the deletion of every file in the _generated This two files are joined and a new view.vue file is created in the generated directory. The generated directory will only contain vue files resultant of the join of html and js pairs.
The view.html file must contain HTML, on the other hand, the view.js must contain javascript and it can even indicate the preprocessor to be used to process it, on its first code line, as the following example illustrates:
The view.vue file result of the join of the view.html and view.js files, follows the following name convention: controller-action.vue
View mode
Is a view.something.html file that has no view.something.js correspondent file but has a view.js correspondent file. During the vue files generation for view mode templates, the correspondent view.js will be applied.
4 - Integration of Webpack
Webpack would provide TypeScript and JSX compilation combined to Babel transpiler.
Invoke web-pack during maven build
The build (TypeScript and JSX) would be initiated automatically upon java sources compilation.
5 - Framework Development using TypeScript
Take advantage of the static typing to detect issues earlier and also take advantage of the ECMAScript6 features, with focus on modularization.
6 - Componentization
Hi-Frameworks was no function component concept in place. All it has are embedded views, which are an improvement to provide a component-like feature. Hi-Applications should assume functional componentization in order to increase code re-usability.
7 - Improve the frontiers code generation process - TypeScript
8 - Improve generation of hi-es5.js
9 - Improve template files and global events handling
10 - Server-side rendering support - only for initial page load
Redux integration (
Frontiers generation on server-side
Passing data from controller to View components
11 - i18N improvement - no more angular filtering (consider pre-processing)
12 - Ajax SEO compatibility
13 - Smart-caching improvement - consider pré-processing
14 - CSRF prevention Improvement (keep deploy id technique)