start
是light框架的第一步逻辑,light所有视图的加载与实例化都在start
之后。
start接口的运行时机在H5运行状态下,light框架会判断当前是否是在light的web容器下环境运行,如果判断为在light的web容器内运行,会等待容器的deviceready事件后再开始节点挂载,以避免原生容器未准备好的情况下就去渲染资源。
如果您本身的程序未使用任何原生接口,或者自己处理了接口的调用时机,可以不再等待原生的
deviceready
事件,此时可以使用_startNow
来替换start
接口来启动。
start接口有三种调用形式,分别为Light.start(options, callback)
和Light.start(callback)
,以及Light.start()
。
{object} options
{string} viewport
屏幕宽度{string} routeMode
路由模式,默认为hash{string} remMode
rem的计算模式,默认为document{string} el
视图根节点,默认为’#main’
{function} callback
options.viewport
用于定义默认viewport
的宽度,默认为750,非特殊情况请勿修改此默认值。
viewport修改会导致页面渲染异常viewport仅在必要时使用,请勿随意修改此默认值。此参数仅在JSNative项目时有效!
options.routeMode
用于定义路由与历史模型记录的方式,默认为hash,此时 URL 的 hash 来模拟一个完整的 URL,于是当 URL 改变时,页面不会重新加载。
如果不想要很丑的 hash,我们可以用路由的 history 模式,这种模式充分利用 history.pushState API 来完成 URL 跳转而无须重新加载页面。
Light.start({ |
当你使用 history 模式时,URL 就像正常的 url,例如 http://yoursite.com/user/id.
不过这种模式还需要后台配置支持。因为我们的应用是个单页客户端应用,如果后台没有正确的配置,当用户在浏览器直接访问 http://oursite.com/user/id 就会返回 404。
options.remMode
rem
的计算模式。默认值为document
,设置为screen
时可以兼容移动端h5页面,此时deviceWidth
的值等同于window.screen.width
,从而计算出正确的rem
值。
Light.start({ |
options.el
用于定于默认挂载页面到的dom节点的选择器,默认值为#main
,该dom节点必须存在于index.html中。
callback
当页面挂载成功后,light核心引擎会调用此callback方法。
开发者可以在callback中处理全局通用依赖的逻辑。
启动是整个应用的第一行代码,只有在Light.start调用以后才会真正计入框架所控制的业务逻辑。基于这个定义,您可以将Light.start()的代码放置于任何地方,尤其是当应用的展现(启动)依赖于一部分资源或者异步操作的时候。
Light.start在调用之后一次调用所注册视图的ready方法,然后初始化系统路由并开始监听路由变化。在start执行完毕后,就会主动触发appStarted事件,需要在应用启动后处理的逻辑可以监听此事件。
Light.start(options,fn),在执行的时候允许传入一个配置项和一个回调函数,在应用启动完成后会调用此函数,其实现和使用场景与appStarted类似。
Light.start({ |