提示

开发业务需要建立熟悉Vue开发了解Weex开发的基础之上,如果您还不熟悉 Weex Vue ,请戳下面文档链接。

配置

配置项目根目录中 config.json 里的 pageurl 属性,zipFolder 如果对 iosandroid 项目无结构改动便不需要配置。

目录结构 fe/src

  • iconfont:存放内置版本的 iconfont ,自动会打包到内置包中。

  • js:主要开发目录。

    • components:组件存放,后续eros会根据一套 ui 在这里编写一套组件,目前只有简单的几个组件。
    • config:配置相关。
      • apis:请求相关配置,可以配置请求别名,和编写接口返回统一处理函数。
      • pages:页面 js 地址别名配置,我们在跳转页面的时候提供类似 vue-router 的 api ,便于操作。
      • index:iconfont增量更新配置,字体大小配置等。
      • push: 个推相关,对接了个推之后客户端都会把消息推动到这里的 pushMessage 事件里。
    • css:css底层。
    • pages:所有页面都放在这里,这里就是你的playground!我们内置了部分 demo,和 weex-demo在里面,可以查看源码。
      • medaitor:所有页面的中介者,类似全局公用bus,你的页面都可以订阅上面的事件,也可以向中介者发布事件,也可以实现类似 vuex 的功能,这个页面是常驻内存的,但不会很耗内存,请谨慎而又潇洒的使用。
    • widget:widget源码,直接修改无法生效,可以自行 import 到页面用便可以生效,只不过会增加包的体积。
    • utils:存放工具函数的地方,可以随意增删改。
  • mock:本地mock数据的地方,当启动服务(sudo bm eros dev)时候便可以进行开发。

js中的文件夹可以根据你的业务做横向拓展。

Hello world

js 入口方式 (weex 官方推荐)

说了这么多,是时候来一发hello world的了:(前提当然是你都配置好了

然后在 pages 中添加 hello 文件夹,并新建 index.jsindex.vue

index.js 中:

// index.js 
import 'Config'
import Home from './index.vue'
new Vue(Vue.util.extend({ el: '#root'}, Home))

index.vue 中就可以愉快的写vue代码了:

<template>
    <div>hello world!</div>      
</template>
<script>
    export default {

    }
</script>

配置下路由 config/pages.js:

 // config/pages.js
 ...
'hello': {
    url: '/pages/hello/index.js',
    title: 'hello world' // 有title自动就会出现导航条,没设置就会隐藏了
}

更改 dev.json,让我们在开发的时候每次保存都编译当前页面 js :

// dev.json
"exports": [
        "js/pages/meditor/bus.js",
        "js/pages/hello/index.js"
   ],

我们把当前demo中的第三个 tab 添加一个跳转hello world的逻辑。

// pages/home/tabs/index.vue
<template>
  <div>
    <text>我是tab3</text>
    <text @click="go">新闻DEMO</text>
    //添加一个文字,点击跳转到hello world
    <text @click="goHelloWorld">hello world</text>
  </div>
</template>
<script>
  export default {
    methods: {
      go(){
        this.$router.open({
          name: 'demo',
          title: '新闻'
        })
      },
      goHelloWorld() {
        this.$router.open({
          name: 'hello'
        })
      }
    }
  }
</script>

最后启动服务 (一定要在 fe 目录下):

$ sudo bm eros dev

页面就出来啦:

这样每次你在hello这个文件夹里做修改,每次保存,在app上点击调试并刷新,就可以实时看到改动啦。

每次新增,修改,删除一个页面,都要对应修改pages.js和dev.json的路径,要注意的是,每次dev.json文件的变动,都需要重新启动服务。

vue 入口方式 (eros 推荐)

使用 vue 入口方式,您可以每次少建一个 index.js 文件,在 index.vue 中我们这么使用。

<template>
<div>hello world!</div>      
</template>
<script>
// config 文件是每个页面都需要注入的配置文件
import 'Config'
export default {

}
</script>

在 dev.json exports 添加为

// dev.json
"exports": [
    "js/pages/hello/index.vue"
],

就可以使用了,注意我们在 pages.json 中写的跳转路径还是应该以js结尾。

  • pages.json 里面配置的是路由跳转的地址,也就是 dev 生成的 dist 文件夹下的 js bundle 路径 从 dist/js 开始
  • dev.json 的 exports 需要打包的js地址,填入src的需要被打包成js bundle的地址 从src开始

注意: 每次 dev.json 修改的时候都要重新启动 bm eros dev。

注意: 每次 dev.json 修改的时候都要重新启动 bm eros dev。

注意: 每次 dev.json 修改的时候都要重新启动 bm eros dev。

$router.open

开发过 Vue 的你不难发现,我们什么依赖都没引入,插件都没注册,你就可以在 this 上使用 $router 这个对象中的方法了,这都是依赖我们本木组件库内置的 widget 来实现的,widget 到底如何使用呢,我们往下看。

results matching ""

    No results matching ""