You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Vue components:
For a streamlined codebase, ensure absolutely zero reflection considerations when coding purely in Vue. For both Vue/Vuex, RTTI references should be phased out completely.
VxMacros.buildComponent() macro:
Add VComponent base constructor, so super() required to be called, with the base class calling a standard macro-generated method _Init() that contains multiple eg. "untyped this.render= {{ThisClass}}.prototype.Render" to mimic Vue component option initializations. This will forego the need to use _toNative() anymore for runtime reflection conversion. In short, due to macros, the Vue component should work right off the bat upon instantiation (eg. new Vue( new HaveVueComp()) ) without any need for further runtime reflection or initialization.
@:watch field metadata support
VComponent to extend VueInstance extern properties to gain access to Vue's standard native $apiFields as _vApiFields within Haxe. Just type out "_v" prefix in your IDE to list out all standard native Vue instance api properties.
GetDefaultPropValues() / GetDefaultPropSettings() dynamic overwrite support over metadata prop settings
@:validateProp metadata support
Extending VComponent classes multiple times down the inheritance chain should be made allowable. (ensure autobuild macro allows this)
Virtual DOM:
Do up and test working draft within Render() function with VuejS' VNode related externs.
.css/.vue export ~~~with class prefix namespacing spec.~~~ via CSS modules and gulp pipeline integration via Haxe compile/build macros.
Vuex:
In Mutator and Action classes.
Autobuild macros
to auto-generate public inline commit/dispatch methods (with macro-resolved namespaced commit/dispatch(strings) ) from explicitly declared class instance private handler functions, rather than return anonymous function bodies that requires runtime reflection checks and hackish runtime prototype function overwrites.
In short, the Vue components should already execute inlined code that outputs something like "context.dispatch({{macroResolvedStringId}}), through the mutator/action class' function call itself. (eg."dispatcher._doAPIAction(payload)" within Haxe, will be automatically compiled as "context.dispatch("AppDispatcher|doAPIAction", payload) in the JS codebase.
In Getter/Module classes
Autobuild macros
to auto-generate quick utility public getter/get_getter accessors from a single private getter(state) function, instead of the x3 declaration boilerplate being used at the moment which is very verbose.
General cleanup, look into _toNative and bootstrapping implementations, etc. for streamlining, particular via macros to replace some of the runtime tasks.
Extra VuexMacros type-checkings in macro for checking types between store/module/mutators/actions.
Vue/Vuex:
Ensure all RTTI-related code dependencies are no longer needed.
The text was updated successfully, but these errors were encountered:
(kiv yagni) When __option parameters are accessed within other Vue instance lifecycle methods where the $options is already made available, haxe macro will convert those references to "untyped this._vOptions.___option" to prevent null referencing at runtime.
(kiv when you need it) strict-typed @:mixin directives
(Advanced. kiv) higher order component with @:mapStateToProps.
Vuex
In Vue Component classes under Vuex
(Advanced. kiv ) static functions for mapGetters, mapFilters, mapState, mapMutations and mapActions field generation via the build macro,
Vue:
Vue components:
For a streamlined codebase, ensure absolutely zero reflection considerations when coding purely in Vue. For both Vue/Vuex, RTTI references should be phased out completely.
VxMacros.buildComponent() macro:
Virtual DOM:
JSX:
CSS/Stylesheet:
Vuex:
In Mutator and Action classes.
In short, the Vue components should already execute inlined code that outputs something like "context.dispatch({{macroResolvedStringId}}), through the mutator/action class' function call itself. (eg."dispatcher._doAPIAction(payload)" within Haxe, will be automatically compiled as "context.dispatch("AppDispatcher|doAPIAction", payload) in the JS codebase.
In Getter/Module classes
General cleanup, look into _toNative and bootstrapping implementations, etc. for streamlining, particular via macros to replace some of the runtime tasks.
Extra VuexMacros type-checkings in macro for checking types between store/module/mutators/actions.
Vue/Vuex:
The text was updated successfully, but these errors were encountered: