此功能基于vue(v2.6.8) + typescript(v3.3.3333), 引入极验(geetest v3+)(官方api),使用其product: bind模式, 页面挂载后初始化ininGeetest,点击登录按钮后先做表单验证,通过后弹出滑块框,拖动验证成功,执行登录方法。 本项目为前后端分离,所以后端部署部分,请自行参考文档操作后台接口:开始:/public/js目录添加 jquery-1.12.3.min.js文件 和 gt.js(下载)在/public/index.html中引入以上添加的两个文件login.v...
某些情况下我们需要对小程序某些用户的行为进行数据进行统计,比如统计某个页面的UV, PV等,统计某个功能的使用情况等。好让产品对于产品的整个功能有所了解。 在网页里,我们很多人都用过谷歌统计,小程序里也有一些第三方数据统计的库, 比如腾讯的MTA等等。 但是,第三方的数据统计库要么功能太简单,满足不了需求,要么就是要收费。(留下了贫穷的泪水。) 等等,又不是你出钱,怕啥? 贵一点就贵一点呀。 嗯,说的没错。但是,...
webpack常用配置webpack dev server 功能:自动打包文件配置dev server:在webpack.config.client.js中配置 const path = require(path);const HTMlPlugin = require(html-webpack-plugin);// 判断是否是开发环境const isDev = process.env.NODE_ENV === developmentconst config = {entry: {app: path.join(__dirname,../client/app.js)},output: {filename: [name].[hash].js,path: path.join(__dirname,../dist),publicPath: /p...
背景目前手上有一个小程序的项目,希望转发时分享消息的界面能够自定义,然而微信小程序只提供设置图片的url和title。 /*** 用户点击右上角分享*/onShareAppMessage: function() {return {imageUrl:,title:};}实现我们要转发的显示内容多了一点东西:头像,用户名和点赞数。好在这个排版不是很复杂,所以我们思考了一下通过canvas去生成一张图片再return canvas所生成的图片url。代码如下(其实还要作出一些显示上的优化,具体你们自...
在微信小程序开发的过程中,在一个页面中对数据操作之后我们大多数时间都需要刷新一下当前界面以把操作之后的结果显示出来,但是如何在执行操作后进行本页面的刷新就成了一个问题很大但是很需要的操作。下面介绍一下微信小程序刷新当前界面的几种方法。 方法一:this.onLoad() 使用方法:在操作函数中调用this.onLoad()或that.onLoad()(有时候this的作用域不够的时候需要定义that = this)。 适用场景:本次操作对页面onLoad函数所...
本文实例讲述了JavaScript动态检测密码强度原理及实现方法。分享给大家供大家参考,具体如下: 在注册账户,设置密码时,会出现密码强度动态检测,网上看了一些帖子,大多只写了具体的实现过程,而没有对原理的分析过程。下面着重讲一下其原理。 原理分析 通常实现密码强度动态判断有两种方案实现: 正则。但其效率低一点,难度也大一些。字符串,函数和运算符。这里用第二种方案,但是如何判断一个密码串是强还是弱呢? 一般我们的...
也不存在什么加载咯, 就是一个判断滚动条是否到达浏览器底部了。 如果到了就触发事件,米到就不处理。 计算公式提简单的 底部等于(0) = 滚动条高度 - 滚动条顶部距离 - 可视高度。 反正结果就是0。 一、获取滚动条位置 class Scroll {static get top() {return Math.max(document.documentElement.scrollTop || document.body.scrollTop);}static get clientHeight() {return Math.max(document.documentElement.clientHeig...
哈,本人是REACT系开发者,工作中需要不停的折腾webpack,为了顺带学习VUE的开发思想和思路,顺理成章的请缨为公司小程序打个框架基础。前期也去了解了下各个小程序开发框架,大体上是通过转义的思路来解决小程序和VUE/REACT的模板、逻辑关系,不做展开讨论了。只是从本人角度分享通过webpack来构建小程序的开发架构。通过观察小程序的原有架构,不难发现其已经是一套比较完善的mvvm架构了(类VUE),融合了VUE及REACT的一些特点(以V...
我们平时工作中,涉及到后台开发,路由基本上是我们第一个需要建的,路由还是很重要的。 那么,什么是路由呢,通俗点举个例子,一个宾馆前台,来了十位客人,前台会安排十位客人入住,每位客人到达宾馆以后,该去哪个房间,都是通过前台来安排。(别喷我) 在一个域名下,会有很多个可访问的地址,这就是路由。 我们呢,要为路由提供请求的URL和其他需要的GET及POST参数,随后路由需要根据这些数据,来决定执行哪些代码。/ 因此,我...
本文实例讲述了JS学习笔记之数组去重实现方法。分享给大家供大家参考,具体如下:操作的数组let arr=[0,1,23,1,4,2,8,5,5,6,9,asdasd,5]1、 利用ES6 的set 来进行数组去重console.time("set")let type1=new Set(arr)console.log(type1)type1=[...type1]console.log(type1)console.timeEnd("set")2、 利用indexof和forEach 多次遍历来搜索是否有相同的值console.time("indexOf")let type2=[]arr.forEach(function(item,index){if(...
先看一下合并后的样式,表格第二行,二三四列合并官网给我们提供了span-method的方法可以进行表格合并,有4个参数返回:row,column,rowIndex,columnIndex;row和column是表格的行和列,里面是当前行和列的值,也就是tableData里的值,rowIndex,columnIndex是当前行和列的序号 <el-table :data="tableData6" :span-method="arraySpanMethod" border style="width: 100%"> <el-table-column prop="id" label="ID" width="180"> </el-table-co...
vm.$watch用法: vm.$watch( expOrFn, callback, [options] ) ,返回值为 unwatch 是一个函数用来取消观察;下面主要理解 options 中的两个参数 deep 和 immediate 以及 unwatch Vue.prototype.$watch = function (expOrFn, cb, options) {const vm = thisoptions = options || {}const watcher = new Watcher(vm, expOrFn, cb, options) if(options.immediate) {cb.call(vm, watcher,.value)}return function unwatchFn() {watche...
"离线包"机制 微信小程序采用的是类似离线包加载方案,以转转小程序为例,当用户第一次打开时会先下载好所有代码,然后再加载页面;当用户再次进入转转小程序时,会直接使用已下载的代码,省去了代码下载的过程,打开速度更快。 看似很美好的设计,但有两个问题: 第一次打开转转小程序时白屏时间很长,因为要下载接近2.5M的代码量,也就是说你的代码越多,白屏时间越长,而转转APP采用的网页离线机制体验更佳:在用户打开APP时就下...
这里举例跳转两个参数 传递多少个也可以这里传参数 我写作 data-item data-id 来绑定 同事加了点击事件bindtap 在index.js在 data 里我写的是假数据 在跳转页面的函数里传e 后面定义的东西根据e来确定 可以在console打印 console.log(e)这样我们就拿到了 传递的数据 然后进行定义等这里跳转详情页的函数 wx.navigateTo 这是一种跳转的方法 tabBar页面要用wx.switchTab 路径后面加上 jsonStr 等 在跳转的详情页面的onload方法里面写...
两组件间传值,可能包含多种情况,有父子组件和非父子组件,对于父子组件网上有很详细的方法讲解,但非父子组件传值有用bus总线,还有一些其他方法,其中的使用路由跳转的方法讲解太过简洁,难以理解。因为是公司项目,采用的是公司封装的UI框架,但基本上还是采用vue框架,ts编写。所以一些样式结构可能没有参考价值,但我会讲解清楚每一部分作用,主要是路由跳转部分的代码实现。 首先,需求如下图,树状列表每一项有一个编辑按钮...