使用kbone解决Vue项目同时支持小程序问题


Posted in Javascript onNovember 08, 2019

什么是kbone

微信小程序开发过程中,许多开发者会遇到 小程序 与 Web 端一起的需求,由于 小程序 与 Web 端的运行环境不同,开发者往往需要维护两套类似的代码,这对开发者来说比较耗费力气,并且会出现不同步的情况。

为了解决上述问题,微信小程序推出了同构解决方案 kbone 来解决此问题。

那么, kbone 要怎么使用呢?这里我们将通过一个 todo 的例子来跟大家讲解。

基本结构

首先,我们来看下一个基本的 kbone 项目的目录结构(这里的 todo 是基于 Vue 的示例, kbone 也有 ReactPreactOmi 等版本,详情可移步 kbone github )。

因为 kbone 是为了解决 小程序 与 Web 端的问题,所以每个目录下的配置都会有两份(小程序 与 Web 端各一份)

使用kbone解决Vue项目同时支持小程序问题

入口

不管是 小程序 端还是 Web 端,都需要入口文件。在 src/index 目录下, main.js 为 Web 端用主入口, main.mp.js 则为 小程序 端用主入口。

当然,Web 端会比 小程序 多一个入口页面,即 index.html (位于根目录下)。 使用kbone解决Vue项目同时支持小程序问题

下面两段代码分别是 小程序端 入口与 Web 端入口的代码,可以看到 小程序端的入口代码封装在 createApp 函数里面(这里固定即可),内部会比 Web 端多一个创建 app 节点的操作,其他的基本就是一致的。

// 小程序端入口
import Vue from 'vue'
import todo from './todo.vue'

export default function createApp() {
 // 创建app节点用于绑定
 const container = document.createElement('div')
 container.id = 'app'
 document.body.appendChild(container)

 return new Vue({
 el: '#app',
 render: h => h(todo)
 })
}
// web端入口
import Vue from 'vue'
import todo from './todo.vue'

new Vue({
 el: '#app',
 render: h => h(todo)
})

todo.vue

在上面的入口图可以看到,源码目录中,除了入口文件分开之前,页面文件就是共用的了,这里直接使用 Vue 的写法即可,不用做特殊的适应。

配置

写完代码之后,我们要怎么跑项目呢?这时,配置就派上用场啦。

Web 端配置为正常的 Vue 配置,小程序端配置与 Web 端配置的唯一不同就是需要引入 mp-webpack-plugin 插件来将 Vue 组件转化为小程序代码。

使用kbone解决Vue项目同时支持小程序问题

构建代码

接着,我们需要构建代码,让代码可以运行到各自的运行环境中去。构建完成后,生产代码会位于 dist 目录中。

// 构建 web 端代码
// 目标代码在 dist/web
npm run build

// 构建小程序端代码
// 目标代码在 dist/mp
npm run mp

小程序端 的构建会比 Web 端的构建多一个步骤,就是 npm 构建。

进入 dist/mp 目录,执行 npm install 安装依赖,用开发者工具将 dist/mp 目录作为小程序项目导入之后,点击工具栏下的 构建 npm ,即可预览效果。

效果

最后,我们来看一下 todo 的效果。kbone 初体验,done~

todo 代码可到 kbone/demo13 自提。

使用kbone解决Vue项目同时支持小程序问题

最后

如果你想了解更多 kbone 相关的使用及详情,可移步 kbone github 。

总结

以上所述是小编给大家介绍的使用kbone解决Vue项目同时支持小程序问题,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!

Javascript 相关文章推荐
JQuery 获取和设置Select选项的代码
Feb 07 Javascript
js页面跳转常用的几种方式
Nov 25 Javascript
jQuery的$.proxy()应用示例介绍
Apr 03 Javascript
node.js [superAgent] 请求使用示例
Mar 13 Javascript
javascript 继承学习心得总结
Mar 17 Javascript
Bootstrap 响应式实用工具实例详解
Mar 29 Javascript
javascript内存分配原理实例分析
Apr 10 Javascript
微信小程序-滚动消息通知的实例代码
Aug 03 Javascript
vue中关闭eslint的方法分析
Aug 04 Javascript
React-router4路由监听的实现
Aug 07 Javascript
小程序使用wxs解决wxml保留2位小数问题
Dec 13 Javascript
详解element上传组件before-remove钩子问题解决
Apr 08 Javascript
在VUE中实现文件下载并判断状态的方法
Nov 08 #Javascript
vue中在vuex的actions中请求数据实例
Nov 08 #Javascript
vue 组件内获取actions的response方式
Nov 08 #Javascript
在vue中使用vuex,修改state的值示例
Nov 08 #Javascript
vue视频播放插件vue-video-player的具体使用方法
Nov 08 #Javascript
详解Vscode中使用Eslint终极配置大全
Nov 08 #Javascript
Vue实例的对象参数options的几个常用选项详解
Nov 08 #Javascript
You might like
PHP学习之PHP运算符
2006/10/09 PHP
PHP生成网站桌面快捷方式代码分享
2014/10/11 PHP
jquery+php实现导出datatables插件数据到excel的方法
2015/07/06 PHP
微信公众号OAuth2.0网页授权问题浅析
2017/01/21 PHP
PHP时间处理类操作示例
2018/09/05 PHP
JavaScript国旗变换效果代码
2008/08/13 Javascript
javascript xml为数据源的下拉框控件
2009/07/07 Javascript
JS TextArea字符串长度限制代码集合
2012/10/31 Javascript
jquery入门—访问DOM对象方法
2013/01/07 Javascript
在Javascript中 声明时用"var"与不用"var"的区别
2013/04/15 Javascript
JavaScript中的字符串操作详解
2013/11/12 Javascript
javascript常见操作汇总
2014/09/03 Javascript
jQuery通过控制节点实现仅在前台通过get方法完成参数传递
2015/02/02 Javascript
jQuery网页定位导航特效实现方法
2016/12/19 Javascript
javascript中mouseenter与mouseover的异同
2017/06/06 Javascript
AngularJS日程表案例详解
2017/08/15 Javascript
使用JS组件实现带ToolTip验证框的实例代码
2017/08/23 Javascript
详解基于vue-router的动态权限控制实现方案
2017/09/28 Javascript
JS与jQuery实现ListBox上移,下移,左移,右移操作功能示例
2018/05/31 jQuery
JS监听组合按键思路及实现过程
2020/04/17 Javascript
JavaScript实现沿五角星形线摆动的小圆实例详解
2020/07/28 Javascript
[02:52]2014DOTA2西雅图国际邀请赛 CIS战队巡礼
2014/07/07 DOTA
[01:56]生活中的妖精之七夕特别档
2016/08/09 DOTA
用Python调用win命令行提高工作效率的实例
2019/08/14 Python
numpy ndarray 取出满足特定条件的某些行实例
2019/12/05 Python
基于Python的一个自动录入表格的小程序
2020/08/05 Python
Answear匈牙利:来自全球200多个知名时尚品牌
2017/04/21 全球购物
Amcal中文官网:澳洲综合性连锁药房
2019/03/28 全球购物
海蓝之谜英国官网:La Mer英国
2020/01/15 全球购物
SOA面试题:如何在SOA中实现松耦合
2013/07/21 面试题
公司端午节活动方案
2014/02/04 职场文书
工程管理英文求职信
2014/03/18 职场文书
学生干部培训方案
2014/06/12 职场文书
技术支持岗位职责
2015/02/13 职场文书
汉字听写大会观后感
2015/06/12 职场文书
退休职工欢送会致辞
2015/08/01 职场文书