微信小程序使用第三方库(第三方js)问题
比如很多人会有这样的问题:
小程序怎样引用第三方js呢?第三方js是封装好的类库 想引用进来实例化使用
这个帖子就综合一下所有相关的知识,做一个整合,以便大家能够集中了了解;我觉得这个还是应该让大家了解的知识;
提示:小程序不支持 window对象和document对象;
一:rpn.js:使用rpn.js实现eval函数功能
http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1513
二: @guyoung 系列文章
使用Underscore.js: http://www.wxapp-union.com/portal.php?mod=view&aid=145
使用Immutable.js: http://www.wxapp-union.com/portal.php?mod=view&aid=155
使用UUID、Base64、Chance: http://www.wxapp-union.com/forum.php?mod=viewthread&tid=1198
扩展微信小程序框架功能(1)——Promise
ES6 对 Promise 有了原生的支持,但微信开发者工具更新版本(0.11.112200)后, 移除了开发者工具对 ES6 中Promise 特性原生的支持, 需要引入第三方的 Promise 库。
扩展微信小程序框架功能(2)——Generator
Generator函数是ES6提供的一种异步编程解决方案,语法行为与传统函数完全不同。
扩展微信小程序框架功能(3)——函数功能增强
Underscore.js 和 Lodash 是最常用的JavaScript库。
扩展微信小程序框架功能(4)——Immutable.js
Immutable.js 是 Facebook 开发的不可变数据集合。Immutable
Data(不可变数据)一旦创建就不能被修改。通过使用Immutable
Data,可以更容易的处理缓存、回退、数据变化检测等问题,应用开发更简单。扩展微信小程序框架功能(5)——Redux
Redux 是 JavaScript 状态容器,提供可预测化的状态管理。
扩展微信小程序框架功能(6)—日期时间
Moment.js是一个JavaScript的日期、时间处理工具类,其对于JavaScript的日期时间处理功能非常强悍和全面。可以用在浏览器环境中使用,也可以在Node.js中。
扩展微信小程序框架功能(7)——正则表达式
XRegExp 是一个开源的 JavaScript库,提供一个参数化、可扩展的支持各种浏览器的正则表达式的实现库,支持附加语法、标志以及方法。
扩展微信小程序框架功能(8)——Xml处理
x2js是一个 实现 XML 与 JavaScript 对象之间相互转换的工具库。
扩展微信小程序框架功能(9)——加解密
node-uuid可以快速地生成符合规范 的 UUID。js-base64可以实现Base64编码和解码。crypto-js可以非常方便地在 JavaScript 进行加解密。
扩展微信小程序框架功能(10)——测试辅助
Chance是一个 JavaScript 随机数生成工具。Mock.js可以生成随机数据,拦截 Ajax 请求。
三:moment
http://www.wxapp-union.com/forum.php?mod=viewthread&tid=2268
四:相关讨论
相关讨论一: 微信小程序使用第三方库问题?
因为小程序目前不支持直接引入 node_modules 所以我写的是路径
我在app.js里根据路径写
require ( './node_module/js-base64/base64.js' );
WAService. js : 3 TypeError : Cannot read property 'Base64' of undefined答:@jayzou
因为源码里面并没有exports Base64对象出来,自己手动exports就可以了
目前来说,我也没找到好的方法,只能修改源码强制导出 小程序的运行时环境既不是Node.js也不是浏览器,也没有暴露全局对象。。。
在Base64源码的最开始
global = {}; //在最开始加上这个
var _Base64 = global.Base64;
在最后
// that's it!
if (global['Meteor']) {
Base64 = global.Base64; // for normal export in Meteor.js
}module.exports = global.Base64; //最后加上这个
这样就能用了
import base64 from './node_module/js-base64/base64.js'
相关讨论二: 如何引入第三方插件(网上的方法已经试过) 引入第三方插件,网上有人说需要进行UMD打包,打包之后引入还是不行。有的说需要暴露接口,对插件代码进行改造,加入了 module.exports = function ,然后通过 require 引入,但是引入后还是报错。
个人引用的是strophe.js文件,求大神告知解决办法
去看了一下Strophe的源码。不知道你用的什么版本的。我看源码最后是这样的
function (Strophe, build, msg, iq, pres) {
window.Strophe = Strophe;
window.$build = build;
window.$msg = msg;
window.$iq = iq;
window.$pres = pres;
};
小程序中宿主环境不是浏览器,所以没有window。这样写当然是不行的。你可以尝试修改为function (Strophe, build, msg, iq, pres) {
var global = {}
global.Strophe = Strophe;
global.$build = build;
global.$msg = msg;
global.$iq = iq;
global.$pres = pres;
module.exports = global
};
使用的时候:
var Strophe = require('./pathStrophe.js').Strophe
注:小程序和web编程是有区别的。我看了一下这个库的源码,使用了很多document, xhr之类的,这些是不支持的哦。可以查阅官方文档。
Storophe源代码
page onRequest function ReferenceError: a is not defined
需要加上从当前页面到该文件的完整路由 如:../../common/test.js -----当前页面位置的前一个前一个文件夹的common文件夹的test.js 文件
var test = require("test.js");test.a();test.js 中module.exports = {a:a}
使用require函数
var util = require('../../utils/util.js')
简易教程:
引用其他js里的方法: http://www.wxapp-union.com/portal.php?mod=view&aid=1339
微信小程序使用第三方库(第三方js)问题相关推荐
- 微信小程序跳转到第三方H5网页
我开发过程中有小程序跳转到网页的需求,下面分享一下我的实现过程: 使用官方文档web-view组件:web-view 1.首先得通过微信公众平台配置业务域名,配置业务域名需要将校验文件上传到网站服务器 ...
- 小程序子组件向父组件传值_一套组件化、可复用、易扩展的微信小程序 UI 组件库...
如何使用 Wux Weapp 是一套组件化.可复用.易扩展的微信小程序 UI 组件库.在开始使用之前,需要先阅读微信小程序自定义组件的相关文档. 通过 npm 安装,需要依赖小程序基础库 2.2.1 ...
- 通过新浪云部署NideShop微信小程序商城(基于Node.js+MySQL+ThinkJS)
本文档为微信小程序商城NideShop项目的安装部署教程(GitHub),欢迎star 一.购买新浪云SAE 为什么选择SAE? 免费二级域名和支持https访问,不用备案,可用于做微信小程序服务器. ...
- 新浪云node加mysql_通过新浪云部署NideShop微信小程序商城(基于Node.js+MySQL+ThinkJS)...
一.购买新浪云SAE为什么选择SAE? 免费二级域名和支持https访问,不用备案,可用于做微信小程序服务器. 选择对应的部署环境 自定义 -> 开发言语:自定义 -> 运行环境:云容器 ...
- 当前最热门的微信小程序UI组件库
1.WeUI WeUI 是一套同微信原生视觉体验一致的基础样式库,由微信官方设计团队为微信 Web 开发量身设计,可以令用户的使用感知更加统一.包含button.cell.dialog. progre ...
- 高颜值微信小程序 UI 组件库!
Vant Weapp Vant 是一个轻量.可靠的移动端组件库,由有赞于 2017 年开源. Github(⭐️ 16.5k):github.com/youzan/vant- iView Weapp ...
- 微信小程序中调用公共的js
微信小程序中调用公共的js 微信小程序中调用公共的js 实现思路: 将部分的js逻辑放到utils中,logs.js中调用utils.js中的方法 实现代码: utils.js: function f ...
- 微信小程序开发日志——面向对象的JS编程
微信小程序开发日志--面向对象的JS编程 前言 不知道有多少小伙伴和之前的我一样,微信小程序的js部分都是用面向过程的方式写的,最后的结果就是代码非常长,其实刚刚写完还好,自己也都清楚哪些部分是做什么 ...
- Wuss Weapp一款高质量,组件齐全,高自定义的微信小程序 UI 组件库
Wuss Weapp 一款高质量,组件齐全,高自定义的微信小程序 UI 组件库 文档 https://phonycode.github.io/wuss-weapp 扫码体验 使用微信扫一扫体验小程序组 ...
- Wuss Weapp 微信小程序 UI 组件库
Wuss Weapp 一款高质量,组件齐全,高自定义的微信小程序 UI 组件库 文档 phonycode.github.io/wuss-weapp 扫码体验 使用微信扫一扫体验小程序组件示例 演示图片 ...
最新文章
- 无法访问已释放的对象。 对象名:“System.ServiceModel.Channels.HttpChannelFactory+HttpRequestChannel”。...
- java 502错误,Spring Boot连接超时导致502错误的实战案例
- js算法初窥06(算法模式03-函数式编程)
- 6月第二周中国五大顶级域名增2.4万 美国减6.8万
- SD-WAN技术的详细解析
- VMware Linux VDI 安装步骤
- CentOS和Ubuntu区别
- JavaScript学习初步
- 《数据库系统原理》课程设计:超市订单管理系统
- 深度装机大师一键重装_手把手教你深度装机大师u盘装系统教程
- Excel如何将列数据转换成行数据?分享技巧!excel怎么把列的信息变换为行的信息?
- Swap file “*.swp“ already exists!的解决方法
- 对 COMP 通证经济模型的一般性评价
- 前端做大屏显示,缩放比,分辨率怎样适配?
- not executable: 64-bit ELF file 已解决
- oppoa5降级教程_OPPOR11S线刷降级旧版本可以吗?Colors版降到3.2没问题
- 三角形的测试用例设计案例
- 用ngrok做内网穿透
- kafka(三):kafka broker
- 榆熙教育:拼多多平台考核如何达成系统考核指标
热门文章
- 【项目评析】Jibrel Network(JNT)--去中心化银行???(黑人问号)
- 智慧医疗如何持续推进?这件事必不可少
- 团队-排课软件-需求分析
- 【01.23】大数据 -- JAVA基础 P15-P24
- 【论文阅读】3D点云 -- PointNet: Deep Learning on Point Sets for 3D Classification and Segmentation
- 12.2.5 图形化日志工具——系统日志查看器
- 分享35套非常华丽的免费 PSD 网页按钮素材
- 1041. 困于环中的机器人
- 社群裂变有哪些工具?做社群裂变怎么选择工具?
- CAD如何转换?一招在线免费将CAD转成多种格式