使用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 相关文章推荐
HTML5附件拖拽上传drop & google.gears实现代码
Apr 28 Javascript
基于jquery的无限级联下拉框js插件
Oct 29 Javascript
浅谈Javascript中的12种DOM节点类型
Aug 19 Javascript
基于jQuery实现表格内容的筛选功能
Aug 21 Javascript
js replace()去除代码中空格的实例
Feb 14 Javascript
浅谈Koa服务限流方法实践
Oct 23 Javascript
js经验分享 JavaScript反调试技巧
Mar 10 Javascript
原生JS实现简单的倒计时功能示例
Aug 30 Javascript
微信小程序实现点击空白隐藏的方法示例
Aug 13 Javascript
解决LayUI数据表格复选框不居中显示的问题
Sep 25 Javascript
判断JavaScript中的两个变量是否相等的操作符
Dec 21 Javascript
Element-UI 使用el-row 分栏布局的教程
Oct 26 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中操作MySQL数据库的一些要注意的问题
2006/10/09 PHP
set_include_path和get_include_path使用及注意事项
2013/02/02 PHP
ThinkPHP框架实现session跨域问题的解决方法
2014/07/01 PHP
php使用ftp实现文件上传与下载功能
2017/07/21 PHP
laravel 数据迁移与 Eloquent ORM的实现方法
2019/04/12 PHP
laravel 实现设置时区的简单方法
2019/10/10 PHP
三级下拉菜单的js实现代码
2011/05/23 Javascript
ES6新特性八:async函数用法实例详解
2017/04/21 Javascript
JavaScript图片处理与合成总结
2018/03/04 Javascript
vue-cli 引入jQuery,Bootstrap,popper的方法
2018/09/03 jQuery
vue项目设置scrollTop不起作用(总结)
2018/12/21 Javascript
Vue动画事件详解及过渡动画实例
2019/02/09 Javascript
jQuery操作attr、prop、val()/text()/html()、class属性
2019/05/23 jQuery
js 闭包深入理解与实例分析
2020/03/19 Javascript
JavaScript面向对象核心知识与概念归纳整理
2020/05/09 Javascript
[00:14]PWL:老朋友Mushi拍VLOG与中国玩家问好
2020/11/04 DOTA
python中的列表推导浅析
2014/04/26 Python
Python实现简单状态框架的方法
2015/03/19 Python
Python实现批量修改文件名实例
2015/07/08 Python
用python写的一个wordpress的采集程序
2016/02/27 Python
python实现简单flappy bird
2018/12/24 Python
selenium跳过webdriver检测并模拟登录淘宝
2019/06/12 Python
python安装scipy的方法步骤
2019/06/26 Python
python实现连连看辅助之图像识别延伸
2019/07/17 Python
Python的控制结构之For、While、If循环问题
2020/06/30 Python
用python获取txt文件中关键字的数量
2020/12/24 Python
CSS3实现的闪烁跳跃进度条示例(附源码)
2013/08/19 HTML / CSS
Canvas 帧动画吃苹果小游戏
2020/08/05 HTML / CSS
2014自荐信的写作技巧
2014/01/28 职场文书
设计师个人求职信范文
2014/02/02 职场文书
新任教师自我鉴定
2014/02/24 职场文书
出生公证书样本
2014/04/04 职场文书
师德师风承诺书
2014/05/23 职场文书
2014年学生会部门工作总结
2014/11/07 职场文书
教师辞职信范文
2015/02/28 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书