Okam(奥卡姆):小程序开发框架
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(奥卡姆):小程序开发框架的更多相关文章
- 微信小程序开发框架技术选型
目前微信小程序开发有三种方式,原生微信小程序,使用mpVue或wepy微信小程序开发框架. 三种开发方式横向对比资料如下:
- 微信小程序开发框架整理
目前除了原生的微信小程序开发外,各大厂商陆续造了自己的开发框架,现整理如下: WePY 腾讯官方开源的小程序组件化开发框架,目前有15K+Star ,一直在更新着,社区活跃,掉坑能快速的找到方法爬出来 ...
- [原创] 分享我们自己搭建的微信小程序开发框架——wframe及设计思想详解
wframe不是控件库,也不是UI库,她是一个微信小程序面向对象编程框架,代码只有几百行.她的主要功能是规范小程序项目的文件结构.规范应用程序初始化.规范页面加载及授权管理的框架,当然,wframe也 ...
- wepy - 小程序开发框架
2017-09-23 运行命令. wepy build --watch 2017-11-06 wepy一直用的1.5.8,同事有一次安装了最新的1.6.0就报错了... unexpected char ...
- 小程序开发框架----WXSS
规定了屏幕宽度为750个RPX,从而可以通过屏幕宽度来进行自适应
- 微信小程序开发框架 Wepy 的使用
一.github地址:https://github.com/Tencent/wepy 按照 README.md 的步骤进行操作: 1.在“介绍”中获得 wepy 的开发资源汇总:https://git ...
- 【腾讯Bugly干货分享】打造“微信小程序”组件化开发框架
本文来自于腾讯Bugly公众号(weixinBugly),未经作者同意,请勿转载,原文地址:http://mp.weixin.qq.com/s/2nQzsuqq7Avgs8wsRizUhw 作者:Gc ...
- 微信小程序开发(五)开发框架MINA
微信团队为小程序提供的框架命名为MINA应用框架.MINA框架通过封装微信客户端提供的文件系统.网络通信.任务管理.数据安全等基础功能,对上层提供一整套JavaScript API,让开发者能够非常方 ...
- 微信小程序-03-小程序开发框架
微信小程序-03-小程序开发框架 官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/MINA.html 小程序开发框架 ...
随机推荐
- Ubuntu下安装Sublime Text3
1. 下载软件 Ctrl+Alt+T 调出命令窗口执行下面命令下载安装包: sudo add-apt-repository ppa:webupd8team/sublime-text-3 2. 更新软件 ...
- yolo回归型的物体检测
本弱又搬了另外一个博客的讲解: 缩进YOLO全称You Only Look Once: Unified, Real-Time Object Detection,是在CVPR2016提出的一种目标检测算 ...
- 百度2017春招<空间中最大三角形面积的问题>
题目: 三维空间中有N个点,每个点可能是三种颜色的其中之一,三种颜色分别是红绿蓝,分别用'R', 'G', 'B'表示. 现在要找出三个点,并组成一个三角形,使得这个三角形的面积最大.但是三角形必须满 ...
- cenos6.5安装vsftp
1.安装 yum install vsftpd 2.配置 vi /etc/vsftpd/vsftpd.conf 检查是否如下配置 anonymous_enable=NO #禁止匿名访问 chroot_ ...
- CSS3–2.css3 响应式布局
1.响应式布局 响应式布局是现在很流行的一个设计理念,随着移动互联网的盛行,为解决如今各式各样的浏览器分辨率以及不同移动设备的显示效果,设计师提出了响应式布局的设计方案.所谓的响应式布局,就是一个网站 ...
- NIO-4pipe
import java.io.IOException; import java.nio.ByteBuffer; import java.nio.channels.Pipe; import org.ju ...
- Linux性能工具
Brendan Gregg 目前是 Netflix 的高级性能架构师 ,他在那里做大规模计算机性能设计.分析和调优.他是<Systems Performance>等技术书的作者,因在系统管 ...
- SQL Server Connection Pooling (ADO.NET)
SQL Server Connection Pooling (ADO.NET) Connecting to a database server typically consists of severa ...
- lr_start_timer,lr_get_transaction_duration,lr_get_transaction_wasted_time函数使用总结
lr_start_timer: 函数的功能: 为了计算时间更加精确,可以用这个函数去掉LR自身的检查点所浪费的时间.如text check and image time Action() { doub ...
- Educational Codeforces Round 38 部分题解
D. Buy a Ticket 分析 建一个源点,连向所有结点,边的花费为那个结点的花费,图中原有的边花费翻倍,最后跑一遍最短路即可. code #include<bits/stdc++.h&g ...