详解Weex基于Vue2.0开发模板搭建
前言最近有一些人反馈说在面试过程中常常被问到weex相关的知识,也侧面反映的weex的发展还是很可观的,可是目前weex的开发者大多数是中小型公司或者个人,大公司屈指可数,揪其原因可能是基于weex的开发正确的姿势大家并没有找到,而且市面上的好多轮子还是.we后缀的,众所周知,weex和vue一直在努力的进行生态互通,而且weex实现web标准化是早晚的问题,今天和大家分享一下weex基于vue2.0的开发框架模板~ 工作原理先简单熟悉一下weex的工作原理,这里引用一下weex官网上的一直图片,详细信息见官网 开发环境搭建weex 开发环境搭建 关于weex开发环境搭建问题见官方文档 android 、iOS 开发环境 关于native开发环境搭建问题见官方文档 框架说明基于vue2.0搭建像前面说的那样weex和vue一直在努力的进行生态互通,而且weex实现web标准化是早晚的问题,所以也建议开发者不要在用.we做后缀来开发了 多页模式(抛弃vue-router)单页形态对于原生可能体验不够好,目前在 native App 里单页模式不太合适 集成三端(android、ios、h5平台)关于android、ios、h5平台的集成与打包问题,在项目中都以解决~ 集成eslint代码检查代码检查是必要的操作,为了能够拥有vue开发的体验,将eslint集成进来~ 注: 由于weexpack暂不支持vue问题,打包相关后续会集成进来~ 框架介绍 package.json依赖 打包配置1、 遍历.vue文件后缀,生成相应的entry.js文件 function walk (dir) {
dir = dir || '.' let directory = path.join(dirname,'./src',dir) let entryDirectory = path.join(dirname,'./src/entry'); fs.readdirSync(directory) .forEach(file => { let fullpath = path.join(directory,file) let stat = fs.statSync(fullpath) let extname = path.extname(fullpath) if (stat.isFile() && extname === '.vue') { let entryFile = path.join(entryDirectory,dir,path.basename(file,extname) + '.js') fs.outputFileSync(entryFile,getEntryFileContent(entryFile,fullpath)) let name = path.join(dir,extname)) entry[name] = entryFile + '?entry=true' } else if (stat.isDirectory()) { let subdir = path.join(dir,file) walk(subdir) } }) } walk() 2、通过weex-loader打包生成native jsbundle 3、 通过weex-vue-loader打包生成web jsbundle const webConfig = getBaseConfig()
webConfig.output.filename = 'web/[name].js' webConfig.module.loaders[1].loaders.push('vue') const weexConfig = getBaseConfig() 项目结构项目启动
android 启动
iOS 启动
h5 启动方式打开 http://localhost:12580/weex.html 项目示例android 端示例 iOS 端示例 结语能看的出来上方的三端示例表现还是很一致的,本篇博文也是想给大家提供一个轮子,也欢迎大家多多提意见,共同促进weex生态成熟~ 框架项目地址: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程之家。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |