浅谈Kbone框架

浅谈Kbone框架

Kbone是腾讯开发的解决微信小程序和Web端同构的框架。简单来说就是只写一套代码,编译结果可以在web端和小程序上运行。

Web端的编译打包结果会自动启动在本地端口,小程序端的内容则需要手动将结果在开发者工具中打开。

一、Kbone特点

1.支持多种前端框架,如:vue、react、preact等,并且能够保持该框架的完整;
2.页面渲染的内容需要用js中的document方法来渲染,提供常用的DOM/BOM接口;
3.小程序端开发仍可使用小程序本身特性;
4.更专注于微信和小程序的开发;
5.Webpack与Kbone是强耦合的,开发需借助Webpack提供的基本依赖

二、如何新建一个Kbone项目?

1.安装脚手架并初始化项目
npm i –g kbone-cli
kbone init project

2.切换目录
cd project

3.项目运行
npm run mp(小程序端)
npm run web(web端)

三、如何现有的项目转换成Kbone项目?

页面编写的代码需要放在js文件中,在kbone项目中,要把入口文件暴露在creatApp()方法中,打包时需要将creatApp()方法挂载在window。具体操作如下:

1.安装webpack脚手架
npm i webpack webpack-cli

2.创建webpack.config.js
配置 entry、output、target、modul、plugins等选项

3.安装插件
npm i mini-css-exctract-plugin
npm i mp-webpack-plugin

4.创建confing.js文件(配置小程序基本信息)
配置entry、router、redirect、app等选项

5.运行
npm run mp(小程序端)
npm run web(web端)

四、与其他框架的差异

Taro和Remax框架 两者都是在编译期完成页面所有内容,而kbone是在运行时渲染小程序内容。
Taro框架 支持多个平台,如:web、h5、微信小程序、百度小程序、支付宝小程序,而Kbone专注于微信和小程序开发。
Remax框架 Remax对react框架进行了强绑定,不支持除react之外的web框架。

五、Kbone实现原理

Kbone是在小程序运行时增加DOM相关接口从而实现渲染,通过lerna来管理多个仓库,通过lerna将相关工具分为了kbone-cli、miniprogram-element,mp-webpack-plugin,reduce-loader等。

kbone-cli:命令行工具,初始化一些参数;

miniprogram-element:用于将html内容转换成小程序的内置组件;

mp-webpack-plugin:处理小程序的基本骨架;

reduce-loader:一个webpack loader处理一些无用代码。

如果需要使用小程序原生跳转的话,需要使用多个webpack entry进行打包,跳转时使用小程序相关API进行页面跳转,否则页面还是使用客户端的方式进行跳转。

浅谈Kbone框架