How to use the rax.createElement function in rax

To help you get started, we’ve selected a few rax examples, based on popular ways it is used in public projects.

Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.

github alibaba / rax / packages / rax-app / src / runApp.js View on Github external
// Process pageData from SSR
            const pageData = initialDataFromSSR && initialDataFromSSR.pagePath === component.__path ? initialDataFromSSR.pageData : {};
            // Do not cache getInitialPropsPromise result
            setPageInitialProps(Object.assign({}, { [component.__path]: Object.assign({}, pageData, nextDefaultProps) }));
          }
        }).catch((error) => {
          // In case of uncaught promise.
          throw error;
        });
      });
      // Early return null if initialProps were not get.
      return null;
    }

    if (isWeb) {
      return createElement(
        Navigation,
        Object.assign(
          { appConfig, component, history, routes, InitialComponent },
          pageInitialProps[component.__path]
        )
      );
    }

    return createElement(
      Fragment,
      {},
      createElement(component, Object.assign({ history, routes, InitialComponent }, pageInitialProps[component.__path])),
      createElement(TabBar, { history, config: appConfig.tabBar })
    );
  }
}
github alibaba / rax / packages / mp-runtime / src / __tests__ / component.js View on Github external
it('should works well with named slot', () => {
    function renderFactory(Rax) {
      return function(data) {
        return createElement('view', {}, [data.$slots.default, data.$slots.named]);
      };
    }
    const Comp = createComponent(renderFactory, Rax, { data: {} });
    const tree = renderer.create(createElement(Comp, {}, [
      'child',
      createElement('text', { slot: 'named' }, 'named slot')
    ]));

    expect(tree).toMatchSnapshot();
  });
github alibaba / rax / packages / driver-worker / src / __tests__ / driver.js View on Github external
it('should be drived by rax', (done) => {
    const addEventListener = () => {};
    const postMessage = (message) => {
      expect(message).toMatchSnapshot();
      done();
    };
    const driver = createDriver({ addEventListener, postMessage });
    render(createElement('view'), null, { driver });
  });
github alibaba / rax / packages / rax-clone-element / src / __tests__ / cloneElement.js View on Github external
it('should normalize props with default values', function() {
    class MyComponent {
      static defaultProps = {prop: 'testKey'};
      render() {
        return <span>;
      }
    }

    var instance = createElement(MyComponent);
    var clonedInstance = cloneElement(instance, {prop: undefined});
    expect(clonedInstance.props.prop).toBe('testKey');
    var clonedInstance2 = cloneElement(instance, {prop: null});
    expect(clonedInstance2.props.prop).toBe(null);

    var instance2 = createElement(MyComponent, {prop: 'newTestKey'});
    var cloneInstance3 = cloneElement(instance2, {prop: undefined});
    expect(cloneInstance3.props.prop).toBe('testKey');
    var cloneInstance4 = cloneElement(instance2, {});
    expect(cloneInstance4.props.prop).toBe('newTestKey');
  });
</span>
github alibaba / rax / packages / rax-server-renderer / src / __tests__ / attributes.js View on Github external
function MyComponent() {
          return createElement('div', {}, 'foo');
        }
github alibaba / rax / packages / rax-app / src / runApp.web.js View on Github external
export default function runApp(appConfig) {
  const { routes, shell, hydrate = false } = appConfig;
  const withSSR = !!window.__INITIAL_DATA__;

  let history;
  if (withSSR) {
    history = createBrowserHistory();
  } else {
    history = createHashHistory();
  }

  let entry = createElement(Entry, { history, routes });

  if (shell) {
    entry = createElement(shell.component, { data: initialData.shellData }, entry);
  }

  if (!launched) {
    launched = true;
    emit('launch');
  }

  render(
    entry,
    document.getElementById('root'),
    { driver: UniversalDriver, hydrate }
  );
}
github alibaba / rax / packages / rax-redux / src / components / connect.js View on Github external
if (
          haveStatePropsChanged ||
          haveDispatchPropsChanged ||
          haveOwnPropsChanged
        ) {
          haveMergedPropsChanged = this.updateMergedPropsIfNeeded();
        } else {
          haveMergedPropsChanged = false;
        }

        if (!haveMergedPropsChanged && renderedElement) {
          return renderedElement;
        }

        if (withRef) {
          this.renderedElement = createElement(WrappedComponent, {
            ...this.mergedProps,
            ref: 'wrappedInstance'
          });
        } else {
          this.renderedElement = createElement(WrappedComponent,
            this.mergedProps
          );
        }

        return this.renderedElement;
      }
github storybookjs / storybook / examples / rax-kitchen-sink / src / components / Logger.js View on Github external
renderEvent({ name, payload }) {
    return createElement(
      View,
      { style: styles.item },
      createElement(Text, null, '----------------------------------'),
      createElement(Text, null, `Name: ${name}`),
      createElement(Text, null, `Payload: ${JSON.stringify(payload)}`),
      createElement(Text, null, '----------------------------------')
    );
  }
github alibaba / rax / packages / rax-pwa / src / AliveRouter / index.js View on Github external
const { Router } = useRouter(routerConfig);

  maxSavePathNum = maxSavePath;
  routerProps = props;
  routerList = routes;
  updateComponentTrigger = setUpdateTemp;

  useEffect(() => {
    history.listen(() => {
      updateComponentTrigger(Date.now());
    });
  }, []);


  if (isNode && routerConfig.InitialComponent) {
    return createElement(routerConfig.InitialComponent, props);
  }

  const isKeepAlivePage = !!paths.find(pathItem => pathItem === history.location.pathname);
  const isTabBarPageTabBar = !!items.find(item => item.pagePath === history.location.pathname);

  if (isFirstTimeRender && routerConfig.InitialComponent) {
    isFirstTimeRender = false;
    const getInitialComponent = routerConfig.InitialComponent;
    if (!isTabBarPageTabBar) {
      return createElement(getInitialComponent(), props);
    } else {
      pages[history.location.pathname] = createElement(getInitialComponent(), props);
      delete routerConfig.InitialComponent;
    }
  }
github alibaba / rax / packages / rax-app / src / runApp.js View on Github external
if (isWeb) {
      return createElement(
        Navigation,
        Object.assign(
          { appConfig, component, history, routes, InitialComponent },
          pageInitialProps[component.__path]
        )
      );
    }

    return createElement(
      Fragment,
      {},
      createElement(component, Object.assign({ history, routes, InitialComponent }, pageInitialProps[component.__path])),
      createElement(TabBar, { history, config: appConfig.tabBar })
    );
  }
}