博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
weex 项目开发(四)项目框架搭建 及 自定义 TabBar 组件
阅读量:6657 次
发布时间:2019-06-25

本文共 4503 字,大约阅读时间需要 15 分钟。

1.安装  路由模块  及  状态管理模块

npm install vue-router --savenpm install vuex --save

2.自定义  TabBar  组件

src / components / TabBar.vue

TabBar.vue

3.自定义  工具类

src / utils / util.js

util.js

/** * 工具类 */let utilFunc = {    initIconFont () {        let domModule = weex.requireModule('dom');        domModule.addRule('fontFace', {            'fontFamily': "iconfont",            'src': "url('http://at.alicdn.com/t/font_404010_jgmnakd1zizr529.ttf')"        });    },    setBundleUrl(url, jsFile) {        const bundleUrl = url;        let host = '';        let path = '';        let nativeBase;        const isAndroidAssets = bundleUrl.indexOf('your_current_IP') >= 0 || bundleUrl.indexOf('file://assets/') >= 0;        const isiOSAssets = bundleUrl.indexOf('file:///') >= 0 && bundleUrl.indexOf('WeexDemo.app') > 0;        if (isAndroidAssets) {            nativeBase = 'file://assets/dist';        } else if (isiOSAssets) {            // file:///var/mobile/Containers/Bundle/Application/{id}/WeexDemo.app/            // file:///Users/{user}/Library/Developer/CoreSimulator/Devices/{id}/data/Containers/Bundle/Application/{id}/WeexDemo.app/            nativeBase = bundleUrl.substring(0, bundleUrl.lastIndexOf('/') + 1);        } else {            const matches = /\/\/([^\/]+?)\//.exec(bundleUrl);            const matchFirstPath = /\/\/[^\/]+\/([^\s]+)\//.exec(bundleUrl);            if (matches && matches.length >= 2) {                host = matches[1];            }            if (matchFirstPath && matchFirstPath.length >= 2) {                path = matchFirstPath[1];            }            nativeBase = 'http://' + host + '/';        }        const h5Base = './index.html?page=';        // in Native        let base = nativeBase;        if (typeof navigator !== 'undefined' && (navigator.appCodeName === 'Mozilla' || navigator.product === 'Gecko')) {            // check if in weexpack project            if (path === 'web' || path === 'dist') {                base = h5Base + '/dist/';            } else {                base = h5Base + '';            }        } else {            base = nativeBase + (!!path? path+'/':'');        }        const newUrl = base + jsFile;        return newUrl;    },    getUrlSearch(url,name) {        var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");        var r = url.slice(url.indexOf('?')+1).match(reg);        if (r != null) {            try {                return decodeURIComponent(r[2]);            } catch (_e) {                return null;            }        }        return null;    }};export default utilFunc;  

4.其他页面

src / pages / Home / Home.vue

例如:Home.vue

5.配置 路由

src / router / index.js

index.js

/** * 配置路由 */import Router from 'vue-router'// 首页import Home from '../pages/Home/Home.vue'// 专题import Topic from '../pages/Topic/Topic.vue'// 分类import Class from '../pages/Class/Class.vue'// 购物车import Shop from '../pages/Shop/Shop.vue'// 个人import My from '../pages/My/My.vue'Vue.use(Router)export default new Router({    // mode: 'abstract',    routes: [        { path: '/', redirect: '/home' },        { path: '/home', component: Home },        { path: '/topic', component: Topic },        { path: '/class', component: Class },        { path: '/shop', component: Shop },        { path: '/my', component: My }    ]})

6.主页面  引入 工具类  及  TabBar 组件

src / App.vue

App.vue

7.定义  入口文件  entry.js

src / entry.js

/** * 入口文件 */import App from './App.vue'import router from './router'// 创建应用程序实例new Vue(Vue.util.extend({ el: '#root', router }, App));router.push('/');

8.在  webpack.config.js 中配置 入口文件

/***************** 配置入口文件 start *****************/const entry = {index: pathTo.resolve('src', 'entry.js')};const weexEntry = {index: pathTo.resolve('src', 'entry.js')};/****************** 配置入口文件 end ******************/

9.项目 结构

10.效果图

注:#root 报错

如果你使用的是 entry.js 作为入口文件,就需要删除 webpack.conf.js 文件中的 getEntryFileContent 和 walk 方法。

转载于:https://www.cnblogs.com/crazycode2/p/7988978.html

你可能感兴趣的文章
java 连接sqlserver_java连接sqlserver报错
查看>>
mysql元数据同步_MySQL 元数据
查看>>
java 事务面试_java中关于java事务的面试要点
查看>>
java宝典_Java宝典(三)
查看>>
java选_java基础笔记(七)——java选择结构
查看>>
2017java软件开发_201671010114 2016-2017-2《Java程序设计》Java的设计环境
查看>>
java非jsp_java – JSTL / JSP EL(表达式语言)在非JSP(独立)上下文中
查看>>
java垃圾回收是系统级线程_JAVA的垃圾回收机制
查看>>
java程序设计基础第七章_Java语言程序设计(基础篇) 第七章 一维数组
查看>>
外部导入java文件_从其他目录中的外部文件导入配置
查看>>
java实现找数字游戏_Java实现简单猜数字小游戏
查看>>
java用线程做小球碰撞_JAVA核心技术之球体碰撞多线程版
查看>>
java 中上下文对象_Java 中的 AWS Lambda 上下文对象 - AWS Lambda
查看>>
java黄油刀_github 黄油刀(注解) butterknife
查看>>
Java引入依赖aar_java – 为什么我要将gradle依赖包含为`@ aar`
查看>>
java如何通过值寻找键_java – 如何使用Firebase查询等于(值,键)?
查看>>
选择java还是网络安全_计算机专业大二分方向,该选择人工智能还是网络安全...
查看>>
java svn使用教程_csvn使用教程
查看>>
java 结构式cas 插件_单点登录终极方案之 CAS 应用及原理
查看>>
java 9 jigsaw_[译]Java 9一步步迁移项目到Jigsaw(模块化)
查看>>