# weex **Repository Path**: wangziting/weex ## Basic Information - **Project Name**: weex - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2019-01-16 - **Last Updated**: 2020-12-20 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # manufacturer-crm-app #### 项目介绍 #### 软件架构 1.表现层: * store/ - Vuex 状态管理 * router/ - vue-router前端路由 * views/ - 各个业务页面 * assets/ - 公共资源 * components/ - 通用组件 2. 业务层: 3. API 层: * 接口API (mock数据) 4. util层: * util #### 目录结构 ``` /src ├── assets/ # 公共资源 ├── common/ # 统用配置 ├── components/ # 统用组件 ├── core/ # API接口 ├── filters/ # 通用过滤器 ├── mixins/ # 全局混合 ├── store/ # 全局的 Store ├── views/ # 视图(页面) │ ├── App.vue # 根组件 ├── entry.js # 入口文件 └── router.js # 路由配置 ``` #### 项目依赖 ``` "dependencies": { "phantom-limb": "0.0.1", "vue": "^2.5.11", "vue-router": "^3.0.1", "vuex": "^3.0.1", "weex-ui": "^0.6.7", "weex-vue-render": "^0.12.26" }, ``` #### 安装教程 1. cnpm install 2. npm start 3. weex run android(运行在android手机上) #### 使用说明 1. 通用组件建议进行封装使用,及时在真机上预览,查看效果,避免native端功能不生效问题 2. 不能使用history模式。原生不支持 3. 不支持display: none;可用opacity: 0;代替,(opacity<=0.01时,元素可点透) 4. 样式属性暂不支持简写(提高解析效率) 5. flex 布局需要注意 web 的兼容性 6. css 不支持 3D 变换 7. 在 Weex 的 ios 和 android 端,并不支持 display 属性。因此,不能使用 display:none; 来控制元素的显隐性,所以 vue 语法中的 v-show 条件渲染是不生效的。我们可以使用 v-if 代替,或者用 opacity:0; 来模拟。 8. 不能使用keep-alive移动端的原生组件不能被前端缓存 9. 不建议使用嵌套路由,路由模式可以如下 ``` { path: '/mine', name: 'mine', component: Mine }, { path: '/mine/equipment', name: 'equipment', component: equipment }, ``` 10. 公共组件、方法、过滤规则提取出来放置相应的目录下 ###### 交互相关 Weex 到 Weex 之间: 如果是父子页面关系: emit() refs 如果是跨页面: BroadcastChannel web端状态存储可以使用vuex ###### 参考文档: * 在 Weex 中使用 Vue.js http://weex-project.io/cn/guide/use-vue.html * 与 Web 平台的差异 http://weex-project.io/cn/wiki/platform-difference.html * 使用 Vuex 和 vue-router https://www.cnblogs.com/hehey/p/6295480.html * 网易严选App感受Weex开发(已完结) https://segmentfault.com/a/1190000011027225 * 可能是史上最全的weex踩坑攻略 https://www.jianshu.com/p/497f1a9ff33f * 其他优秀项目 https://github.com/joggerplus/awesome-weex #### 注意事项 1. 首次运行Android项目时需要修改/platforms/android 下 local.properties sdk.dir=D\:\\tool1\\sdk 路径修改为自己本地sdk路径 2. 在web端使用状态存储时候。需要配置src/store/index.js中 ``` // web 环境下需要如下配置(将Native端的配置注释掉) import Vue from 'vue' Vue.use(Vuex) ``` 在原生端运行时候,需要进行如下配置(将web端的配置注释掉) ``` // 原生环境下需要如下配置 if (WXEnvironment.platform !== 'Web') { Vue.use(Vuex) } ``` 3. 公共样式可以提取出来,放置到assets/css 下。页面引用方式 ``` eg: assets/css/base.css 在custome中引用方式 ``` 4. IconFont 缓存处理 将最新的iconfont.ttf下载,放置到android/app/src/main/assets下缓存 ``` if (platform == 'android') { url = "url('local:///iconfont.ttf')" } else if (platform == 'ios') { url = "url('local:///iconfont.ttf')" } else { url = "url('http://at.alicdn.com/t/font_934596_1c1u5ufwqey.ttf?v=" + new Date().getTime() + "')" } ``` 5. APP更新涉及到两端的更新。 * 1.前端模块的更新(增量更新) * 2.原生android端更新(如果原生没修改东西无需更新)。 前端更新一般是把 build的js放置到服务器上,进行热更新。原生更新需要把新打包的apk放置到服务器上。 . .........................................