weex页面开发模式

版权声明:如要转发,请注明出处,小小喵的微博 https://blog.csdn.net/weixin_42881744/article/details/82740675

页面开发模式:

  • 第一种:单页面(SPA) 通过 Vue-router + Vuex 来实现。这种方式是通过Router的方式来进行页面切换,如果页面不需要太多的交互效果,可以使用这种方式来实现。
  • 第二种:独立页面,每个页面都独立一个 bundle js 文件,通过 navigator对象进行页面切换,交互效果较好。

推荐的开发模式

整体架构使用独立页面的方式,在 src/entry 配置好每一个独立入口。通过 cuiweex 提供的 $push$pop 来实现页面交互。局部使用 Router 的方式进行组件切换。

以上的方式并不是绝对的,可以根据实际需要进行调整。

第一步,页面入口配置

首先在 src/view 下创建 index.vue 文件(脚手架工程默认会有个app.vue)

结构如下:

<template>
    <div>
        <text>Hello cui-Weex</text>
    </div>
</template>
<style lang="sass" src="cui-weex/src/css/cuiweex.scss"></style>
<script>
    var globalEvent = weex.requireModule('globalEvent');
    export default {
        data: function () {
            return {}
        },
        methods: {},
        mounted(){
            globalEvent.addEventListener("androidback", e => {
                this.$pop();
            });
        }
    }
</script>

之后,在 src/entry 下创建 index.js

import Index from '../views/index.vue'
import cuiweex from 'cui-weex' //将cui-weex注入到全局,无需逐个引用
Vue.use(cuiweex);
Index.el = '#root'
new Vue(Index)

webpack 会根据 src/entry 的文件自动在dist下生成index.weex.js,这就是一个独立的Bundle JS。如果没有生成文件,请重新运行 npm run dev

第二步,页面组装

cui-weex 里面提供了很多UI组件,开发者只需要通过组装的方式进行开发。

引入 js(0.2.0+已经不需要引入)

里面包含了一些工具方法,例如push,pop,alert,toast等:

var cuiweex = require("cui-weex");

引入 css

如果想使用到布局等基础样式,需要引入cuiweex.scss,注意这里是使用sass的语法。

第三步,页面跳转和传递参数

假设想从 App.vue 跳转到 Index.Vue ,实际上是从 app.weex.js 跳转到 index.weex.js

App.vue 中调用如下接口:(假设点击Button)

 var url = this.$getContextPath()+"/index.weex.js";
 this.$push(url);

传递参数:

var params={'name':'yulsh','company':'BingoSoft'}
var url = this.$getContextPath()+"/index.weex.js";
this.$push(url,params);

Index.vue 中获取参数:

mounted:function(){
    var pageParams=this.$getPageParams();
}

第四步,返回上个页面

methods:{
    "back":function(){
        this.$pop();
    }
}

假如想要在返回到同时刷新 App.vue 页面的数据,可以在 App.vue 的顶级元素中添加 viewappear 来实现。(比较理想的做法还是通过 BroadcastChannel,可惜目前无法使用)

<template>
     <div @viewappear="onViewappear">
        ...
     </div>
</template>

到此,您已经可以基于 cui-weex 提供的工程进行页面开发了!Enjoy !

猜你喜欢

转载自blog.csdn.net/weixin_42881744/article/details/82740675