Okam(奥卡姆):小程序开发框架

Okam 是什么

`Okam` 一个面向小程序开发的开发框架,开发体验类 `Vue`。详情

Okam 对各小程序的支持情况

  • 支持 百度小程序
  • 支持 微信小程序
  • 支持 支付宝小程序

Okam 提供了什么

  • 开发模式

    • 支持单文件组件化开发方式,目录结构更加清晰简洁
    • 支持 NPM 包的依赖管理和引用
    • 提供渐进增强可配置方式,包括可配置的构建流程,来提升开发框架能力
  • 开发语法
    • 模板:支持类 `Vue` 模板语法、`Pug` 模板语法
    • 样式:支持 CSS 预处理器和后处理器, `Stylus`、`Less`、`Sass`、`Postcss`
    • 脚本:支持 `Typescript`、`ES Next` 语法支持
  • 扩展的能力
    • `HTML` 标签支持
    • Vue` 数据操作语法,包括 `computed`、`watch` 支持
    • `Redux` 数据状态管理
    • 模板组件 `ref` 引用支持
    • `Mixins` 支持
    • `Promise`、`Async`、`await` 语法支持
    • 原生接口支持可定制的 `Promise` 化
    • 提供原生接口 `Hook` 能力
    • 样式 `rpx` 单位自动转换
    • 接口 `Mock`
    • 图片自动压缩能力
  • 其它
    • 框架 `API` 优化及扩展、数据操作优化
    • 微信请求优化
    • 原生小程序和开发框架语法混用支持

代码示例

  • 入口脚本
 /**
* @file 小程序入口
* @author <author>
*/ 'use strict'; export default {
config: {
pages: [
'pages/home/index'
], window: {
navigationBarBackgroundColor: '#211E2E',
navigationBarTextStyle: 'white',
backgroundTextStyle: 'light',
enablePullDownRefresh: true,
backgroundColor: '#ccc'
}, networkTimeout: {
request: 30000
}
}, $promisifyApis: []
};
  • 入口样式
 /**
* @file The app entry style
* @author <author>
*/ @require './common/css/mixin.styl'
@require './common/css/variable.styl'
@require './common/css/common.styl'
  • 页面
 <template>
<view class="home-wrap">
<hello :from="from" @hello="handleHello"></hello>
<view class="click-tip" if="clicked">You click me~</view>
</view>
</template>
<script>
import Hello from '../../components/Hello'; export default {
config: {
title: 'Page Title'
}, components: {
Hello
}, data: {
btnText: 'Hello',
clicked: false,
from: 'HomePage'
}, methods: { handleHello(e) {
this.clicked = true;
this.btnText = 'You clicked'; this.$api.showToast({
title: 'Received Hello',
duration: 3000
});
}
}
};
</script>
<style lang="stylus">
@require '../../common/css/variable.styl'
@require '../../common/css/mixin.styl' .home-wrap
padding: 100px
height: 100vh
box-sizing: border-box
background: #ddd .click-tip
margin-top: 100px
padding: 20px
text-align: center
color: red </style>
  • 组件
 <template>
<view class="hello-wrap">
<button plain class="hello-btn" @click="handleClick">Hello in {{from}}</button>
</view>
</template>
<script>
export default {
config: {
}, props: {
from: String
}, components: {
}, data: {
}, methods: {
handleClick() {
this.$emit('hello', {from: this.from});
}
}
};
</script>
<style lang="stylus">
.hello-wrap
padding: 20px
margin: 20px 0 .hello-btn
width: 846px
height: 148px
margin: 0 auto
line-height: @height
background: #fff
text-align: center
border-radius: 120px
border: none
</style>

完整示例详见

操作步骤:

git clone https://github.com/ecomfe/okam-template.git

cd okam-template

npm i

npm run dev // 百度小程序开发模式

npm run dev:wx // 微信小程序开发模式

开发工具 打开 构建产物目录 `dist、wx_dist`

更多详细信息

技术交流

技术交流:QQ 群:`728460911`,入群备注:okam

技术学习:项目代码开源在 Github 上,有问题或者建议,欢迎提 issue, 发 pr

Okam(奥卡姆):小程序开发框架的更多相关文章

  1. 微信小程序开发框架技术选型

    目前微信小程序开发有三种方式,原生微信小程序,使用mpVue或wepy微信小程序开发框架. 三种开发方式横向对比资料如下:  

  2. 微信小程序开发框架整理

    目前除了原生的微信小程序开发外,各大厂商陆续造了自己的开发框架,现整理如下: WePY 腾讯官方开源的小程序组件化开发框架,目前有15K+Star ,一直在更新着,社区活跃,掉坑能快速的找到方法爬出来 ...

  3. [原创] 分享我们自己搭建的微信小程序开发框架——wframe及设计思想详解

    wframe不是控件库,也不是UI库,她是一个微信小程序面向对象编程框架,代码只有几百行.她的主要功能是规范小程序项目的文件结构.规范应用程序初始化.规范页面加载及授权管理的框架,当然,wframe也 ...

  4. wepy - 小程序开发框架

    2017-09-23 运行命令. wepy build --watch 2017-11-06 wepy一直用的1.5.8,同事有一次安装了最新的1.6.0就报错了... unexpected char ...

  5. 小程序开发框架----WXSS

    规定了屏幕宽度为750个RPX,从而可以通过屏幕宽度来进行自适应

  6. 微信小程序开发框架 Wepy 的使用

    一.github地址:https://github.com/Tencent/wepy 按照 README.md 的步骤进行操作: 1.在“介绍”中获得 wepy 的开发资源汇总:https://git ...

  7. 【腾讯Bugly干货分享】打造“微信小程序”组件化开发框架

    本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2nQzsuqq7Avgs8wsRizUhw 作者:Gc ...

  8. 微信小程序开发(五)开发框架MINA

    微信团队为小程序提供的框架命名为MINA应用框架.MINA框架通过封装微信客户端提供的文件系统.网络通信.任务管理.数据安全等基础功能,对上层提供一整套JavaScript API,让开发者能够非常方 ...

  9. 微信小程序-03-小程序开发框架

    微信小程序-03-小程序开发框架 官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/MINA.html 小程序开发框架 ...

随机推荐

  1. java版云笔记(五)

    下来是创建笔记本,创建笔记,这个没什么难点和前面是一样的. 创建笔记本 首先点击"+"弹出添加笔记的对话框,然后点击确定按钮创建笔记本. //点击"+"弹出添加 ...

  2. mysql delete 注意

    mysql中You can't specify target table <tbl> for update in FROM clause错误的意思是说,不能先select出同一表中的某些值 ...

  3. csu 1549: Navigition Problem(几何,模拟)

    1549: Navigition Problem Time Limit: 1 Sec  Memory Limit: 256 MBSubmit: 305  Solved: 90[Submit][Stat ...

  4. 下划线css

    /* <div class="text">header</div> */ .text { /* 作用元素 */ display: inline-block; ...

  5. MVC – 5.MVC设计模式和.NetMVC框架

    MVC模式-设计模式 •控制器(Controller)- 负责转发请求,对请求进行处理. •视图 (View) - 界面设计人员进行图形界面设计. •模型 (Model)-业务逻辑.数据.验证规则.数 ...

  6. Web前端开发最佳实践(3):前端代码和资源的压缩与合并

    一般在网站发布时,会压缩前端HTML.CSS.JavaScript代码及用到的资源文件(主要是图片文件),目的是加快文件在网络中的传输,让网页更快的展现.当然,CDN分发.缓存等方式也是加快代码或资源 ...

  7. 运行SparkStreaming的NetworkWordCount实例出错:Error connecting to localhost:9999 java.net.ConnectException: Connection refused 解决办法

    一.背景 首先按照Spark的官方文档来运行此实例,具体方法参见这里,当运行命令$ nc -lk 9999开启端口后,再运行命令$ ./bin/run-example streaming.Networ ...

  8. Scrapy 笔记(三)

    摘抄自Python 一.随机user-agent 的设置 关于配置和代码 这里我找了一个之前写好的爬虫,然后实现随机更换User-Agent,在settings配置文件如下: DOWNLOADER_M ...

  9. SQL Server 执行计划分析

    当一个查询到达数据库引擎时,SQL Server执行两个主要的步骤来产生期望的查询结果: 第一步:查询编译,生成查询计划. 第二步:执行这个查询计划. 1. 用于演示分析执行计划的查询语句 /* 查询 ...

  10. 请画出Servlet 2.2以上Web Application的基本目录结构

    Java web工程下的webapp或WebContent就是工程的发布文件夹,发布时会把该文件夹发布到tomcat的webapps里. 一个web应用必须要有的目录文件如下: webapp/WebC ...