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 小程序开发框架 ...
随机推荐
- static变量和final变量
1.static变量 按照是否静态的对类成员变量进行分类可分两种:一种是被static修饰的变量,叫静态变量或类变量:另一种是没有被static修饰的变量,叫实例变量.两者的区别是: 对于静态变量在内 ...
- Python中的json操作
Python中的json操作 标签(空格分隔): python 编码 json 字符串前缀问题 字符串前缀可以有r,u r:表示原始(raw)字符串,比如'\n'不会被转义.常用于正则. u:表示un ...
- MVC公开课 – 1.基础 (2013-3-15广州传智MVC公开课)
1.MVC设计模式 Model 是指 要处理的业务代码和数据操作代码 View 视图 主要是指的 跟用户打交道 并能够展示数据 Controller 看成是 Model和View的桥梁 优点: 1.1 ...
- fedora下中文输入fcitx4.0
fedora12,14下使用fcitx输入法可用,切换ctrl+space
- Web前端开发最佳实践(2):前端代码重构
前言 代码重构是业内经常讨论的一个热门话题,重构指的是在不改变代码外部行为的情况下进行源代码修改,所以重构之前需要考虑的是重构后如何才能保证外部行为不改变.对于后端代码来说,可以通过大量的自动化测试来 ...
- 【LOJ】#2085. 「NOI2016」循环之美
题解 我们要求的其实是这个东西= = \(\sum_{i = 1}^{n}\sum_{j = 1}^{n}[(i,j) == 1][(j,k) == 1]\) 然后变一下形 \(\sum_{j = 1 ...
- thinkphp5.0Traits引入
ThinkPHP 5.0开始采用trait功能(PHP5.4+)来作为一种扩展机制,可以方便的实现一个类库的多继承问题. Traits 是一种为类似 PHP 的单继承语言而准备的代码复用机制.Trai ...
- 洛谷P1552 [APIO2012] 派遣 [左偏树,树形DP]
题目传送门 忍者 Description 在一个忍者的帮派里,一些忍者们被选中派遣给顾客,然后依据自己的工作获取报偿.在这个帮派里,有一名忍者被称之为 Master.除了 Master以外,每名忍者都 ...
- 洛谷P3435 [POI2006]OKR-Period of Words [KMP]
洛谷传送门,BZOJ传送门 OKR-Period of Words Description 一个串是有限个小写字符的序列,特别的,一个空序列也可以是一个串. 一个串P是串A的前缀, 当且仅当存在串B, ...
- openstack newton linuxbridge 改成 ovs
最近搭建了一个all in one 的 openstack newton 版,安装官方文档做用的是linuxbridge.已经老版玩的时候都是用的ovs,趁比较闲的时候也将N版改造一下 官方文档 ht ...