1. 什么是uniapp
uniapp 是 DCloud(凌云科技)推出的一款基于 Vue.js 的开发框架,它可以让你使用 Vue.js 开发一次代码,然后将应用编译为iOS、Android等多个平台的应用程序。uniapp 的一大优势就是可以通过一份代码在不同的平台上运行,这就大大减小了开发量和维护成本。
2. 实时刷新的重要性
在开发应用时,实时刷新是一项非常重要的功能,因为它可以让开发者及时地查看应用的变化,并且可以更加高效地进行调试。
3. uniapp 实现实时刷新方法
3.1 开发环境准备
在开始开发前,我们需要安装 uniapp-cli ,这是一个用于创建 uniapp 项目的脚手架工具。
npm install -g @vue/cli
npm install -g @vue/cli-init
npm install -g uniapp-cli
接下来我们需要创建一个 uniapp 项目,命令如下:
uniapp create my-uniapp
以上命令会创建一个名为 my-uniapp 的 uniapp 项目,具体的创建过程可以参考 uniapp 官方文档。
3.2 实时刷新步骤
实时刷新的实现需要借助 uniapp 内置的 HBuilderX 编辑器。
第一步:在 HBuilderX 编辑器中启动本地服务器,方法如下:
第二步:在项目目录下,通过命令行启动编译器:
npm run dev:mp-weixin
上面的命令指定了运行环境为微信小程序。另外,你也可以运行以下命令来指定其他运行环境:
npm run dev:mp-alipay # 钉钉小程序
npm run dev:mp-toutiao # 今日头条小程序
npm run dev:rn # React Native
第三步:在 HBuilderX 编辑器中打开项目的预览链接,链接会在控制台输出,例如:
[HMR] Waiting for update signal from WDS...
Start building...
Start building...
Start building...
[uni-mp-cli] Running 2 tasks from parallel()
[uni-mp-cli] {
[uni-mp-cli] "task": "watch",
[uni-mp-cli] "config": "uni-app",
[uni-mp-cli] "target": "mp-weixin",
[uni-mp-cli] "watching": true,
[uni-mp-cli] "webpackVersion": "",
[uni-mp-cli] "unwatch": [
[uni-mp-cli] "node_modules/\\.*",
[uni-mp-cli] "platforms",
[uni-mp-cli] "src",
[uni-mp-cli] "unpackage"
[uni-mp-cli] ],
[uni-mp-cli] "path": "/EAS/works/uni-app-start",
[uni-mp-cli] "mode": "development",
[uni-mp-cli] "entry": "/EAS/works/uni-app-start/src/main.js",
[uni-mp-cli] "sourcemap": true,
[uni-mp-cli] "showStats": false,
[uni-mp-cli] "needWatch": true,
[uni-mp-cli] "removeWatcher": true,
[uni-mp-cli] "_showErrors": true,
[uni-mp-cli] "errors": [],
[uni-mp-cli] "_showWarnings": true,
[uni-mp-cli] "warnings": [],
[uni-mp-cli] "moduleFilenames": {
[uni-mp-cli] "_generated_diary": "/EAS/works/uni-app-start/dist/dev/mp-weixin/_generated_diary.js",
[uni-mp-cli] "pages/diary/diary": "/EAS/works/uni-app-start/dist/dev/mp-weixin/pages/diary/diary.js",
[uni-mp-cli] "pages/find/find": "/EAS/works/uni-app-start/dist/dev/mp-weixin/pages/find/find.js",
[uni-mp-cli] "pages/home/home": "/EAS/works/uni-app-start/dist/dev/mp-weixin/pages/home/home.js",
[uni-mp-cli] "pages/mine/mine": "/EAS/works/uni-app-start/dist/dev/mp-weixin/pages/mine/mine.js",
[uni-mp-cli] "pages/service/service": "/EAS/works/uni-app-start/dist/dev/mp-weixin/pages/service/service.js",
[uni-mp-cli] "pages/test/test": "/EAS/works/uni-app-start/dist/dev/mp-weixin/pages/test/test.js"
[uni-mp-cli] },
[uni-mp-cli] "startTime": 1616438542314,
[uni-mp-cli] "compilationTime": 3,
[uni-mp-cli] "minTime": 1561268276766,
[uni-mp-cli] "logger": null
[uni-mp-cli] }
[uni-mp-cli] listenResponse:ok: listening on 127.0.0.1://52781
打开链接后,就可以看到项目的实时展示效果了。
3.3 实时刷新原理
uniapp 的实时刷新原理是基于 Webpack DevServer 的 “Hot Module Replacement”(HMR)功能,它允许开发者在修改代码后告诉编译器需要更新哪些模块,编译器会将这些模块的更改打包成一份补丁文件,然后发送到客户端,客户端通过 Websocket 接收到补丁文件后,再将其应用到已经加载进内存中的 JavaScript 模块中,最终达到实时预览的效果。
4. 总结
实时刷新是 uniapp 开发中非常重要的一个功能,它可以让开发者更加高效和便捷地开发应用。uniapp 实现实时刷新的方法十分简单,只需要借助内置的 HBuilderX 编辑器和 Webpack DevServer 的 “Hot Module Replacement” 功能即可。最后,需要注意的是,实时刷新仅仅是用来开发调试的,不要在发布产品前,将实时刷新功能打开,这会对产品的性能和安全带来一定的影响。