[ 
https://issues.apache.org/jira/browse/WEEX-17?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16200055#comment-16200055
 ] 

ASF GitHub Bot commented on WEEX-17:
------------------------------------

GitHub user Hanks10100 opened a pull request:

    https://github.com/apache/incubator-weex/pull/785

    [WEEX-17] Abstract "weex" variable for each js framework

    Fix [WEEX-17](https://issues.apache.org/jira/browse/WEEX-17).
    
    Pass the `weex` variable to each front-end framework in the last argument 
of `createInstance`. Its API is defined 
[here](http://weex.apache.org/references/weex-variable.html).
    
    Both Vue and Rax can use the `weex` variable with the same implementation. 
Currently, Vue passed `weex` variable to the js bundle, but Rax doesn't pass it 
yet.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/Hanks10100/incubator-weex jsfm-feature-weex

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/incubator-weex/pull/785.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #785
    
----
commit 48ccea1c4edc02b7af80e81f5639243776bef077
Author: Hanks <zhanghan...@gmail.com>
Date:   2017-10-11T09:19:48Z

    + [jsfm] add weex variable api in runtime

----


> Abstract a common `weex` variable for each JS framework
> -------------------------------------------------------
>
>                 Key: WEEX-17
>                 URL: https://issues.apache.org/jira/browse/WEEX-17
>             Project: Weex
>          Issue Type: Improvement
>            Reporter: Jinjiang Zhao
>            Priority: Minor
>              Labels: features
>
> I think before a Weex instance initialized by a certain JS framework, we can 
> abstract and prepare something which every JS framework will do the same and 
> put them into a common `weex` variable. Then this variable could be used 
> directly in a JS framework.
> It contains:
> 1. A CallbackManager instance: to convert callback into a unique callbackId 
> in this Weex page, just for passing the id to native as the callback itself.
> 2. A NativeModuleGetter instance: to require a native module in this Weex 
> page. Because it certainly need processes functions, so it depends on the 
> CallbackManager instance.
> 3. A Document instance: every Weex page must have and only have one Document 
> instance.
> 4. Config object of the Weex page. It should contains env info, framework 
> info and bundle info.
> 5. CSS Units calculator. It depends on config object.
> 6. All injects from JS Services.
> All of above could be passed into JS framework for init. And 
> NativeModuleGetter instance, Document instance, config object and CSS units 
> calculator could be exposed on `weex` variable as `{ requireModule(name), 
> document, config, unit }`. So the new API design of 
> `framework.createInstance` could be:
> function createInstance(id, code, info)
> and parameter info contains: { weex, callbacks, services }



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)

Reply via email to