微信小程序开发successthen(微信小程序开发教程)
本篇文章给大家谈谈微信小程序开发successthen,以及微信小程序开发教程对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
- 1、微信小程序开发中遇到的坑及解决办法
- 2、微信小程序如何实现消息提示框
- 3、微信小程序(上)
- 4、微信小程序给了后台接口,前端怎样调用
- 5、简单处理下微信开发者工具开发微信小程序网络请求封装
- 6、微信小程序如何开发呢,有没有知道的
微信小程序开发中遇到的坑及解决办法
taro单独为某个项目切换taro版本环境
单独为某一个项目升级#这样做的好处是全局的 Taro 版本还是 1.x 的,多个项目间的依赖不冲突,其余项目依然可以用旧版本开发。 如果你的项目里没有安装 Taro CLI,你需要先装一个:
# 如果你使用 NPM
$ npm install --save-dev @tarojs/cli@2.x
# 如果你使用 Yarn
$ yarn add -D @tarojs/cli@2.x
echarts在小程序中滑动卡顿
由于微信小程序中,echarts的层级最高,无论设置多大层级也无法遮住echarts。而且小程序中好像只能用echarts吧。所以为了解决这个bug,我只能委屈求全了。打开ec-canvas.wxml文件,将touchStart、touchMove和touchEnd去掉了,直接删除就好啦。这三个事件应该是做缩放的吧,我们也没有这个缩放的需求。所以就去掉了。虽然暂时满足的需求,还是没有真正的解决问题。
原:
bindinit="init"
bindtouchstart="{{ ec.disableTouch ? '' : 'touchStart' }}"
bindtouchmove="{{ ec.disableTouch ? '' : 'touchMove' }}"
bindtouchend="{{ ec.disableTouch ? '' : 'touchEnd' }}"
现:
bindinit="init"
echarts在小程序中无法跟随页面滑动
在卡顿问题中能与echarts交互少的,可以直接使用图片代替cannvas,即在echarts渲染完毕后将它替换为一张图片。
如果我更新了数据,那么就重新放出echarts,等它渲染完毕后,再次替换为一张图片。
chart.on('finished', () = {
getCurrentInstance().page.selectComponent(id).canvasToTempFilePath({
success: res = {
console.log('res.tempFilePath====',res.tempFilePath)
this.setState({
echartImgSrc: res.tempFilePath
})
},
fail: res =console.log('转换图片失败', res)
});
})
render:
this.state.echartImgSrc =='' ?
ref={this.refChart}
id={this.state.id}
canvas-id="mychart-area"
force-use-old-canvas="true"
ec={this.state.ec}
/
:
CoverImage src={this.state.echartImgSrc}/CoverImage
微信小程序如何实现消息提示框
微信小程序开发中toast也是重要的消息提示方式.
提示框:
wx.showToast(OBJECT)
显示消息提示框
OBJECT参数说明:
示例代码:
?
12345
wx.showToast({ title:'成功', icon:'success', duration: 2000})
wx.hideToast()
隐藏消息提示框
?
123456789
wx.showToast({ title:'加载中', icon:'loading', duration: 10000}) setTimeout(function(){ wx.hideToast()},2000)
wx.showModal(OBJECT)
显示模态弹窗
OBJECT参数说明:
示例代码:
?
123456789
wx.showModal({ title:'提示', content:'这是一个模态弹窗', success:function(res) { if(res.confirm) { console.log('用户点击确定') } }})
wx.showActionSheet(OBJECT)
显示操作菜单
OBJECT参数说明:
success返回参数说明:
示例代码:
?
12345678
wx.showActionSheet({ itemList: ['A','B', 'C'], success:function(res) { if(!res.cancel) { console.log(res.tapIndex) } }})
设置导航条
view提示:{{tip}}/view
button type="default" bindtap="showModal"点击我弹出modal对话框/button
view
modal title="modal对话框" hidden="{{modalHidden}}" confirm-text="确定" cancel-text="取消"
bindconfirm="modalBindaconfirm" bindcancel="modalBindcancel"您好,我是modal对话框/modal
/view
Page({
data:{
// text:"这是一个页面"
tip:'',
buttonDisabled:false,
modalHidden:true,
show:false
},
showModal:function(){
this.setData({
modalHidden:!this.data.modalHidden
})
},
modalBindaconfirm:function(){
this.setData({
modalHidden:!this.data.modalHidden,
show:!this.data.show,
tip:'您点击了【确认】按钮!',
buttonDisabled:!this.data.buttonDisabled
})
},
modalBindcancel:function(){
this.setData({
modalHidden:!this.data.modalHidden,
tip:'您点击了【取消】按钮!'
})
}
})
wx.setNavigationBarTitle(OBJECT)
动态设置当前页面的标题。
OBJECT参数说明:
示例代码:
?
123
wx.setNavigationBarTitle({ title:'当前页面'})
wx.showNavigationBarLoading()
在当前页面显示导航条加载动画。
wx.hideNavigationBarLoading()
隐藏导航条加载动画。
页面跳转:
wx.navigateTo(OBJECT)
保留当前页面,跳转到应用内的某个页面,使用wx.navigateBack可以返回到原页面。
OBJECT参数说明:
示例代码:
?
123
wx.navigateTo({ url:'test?id=1'})
?
123456
//test.jsPage({ onLoad:function(option){ console.log(option.query) }})
注意:为了不让用户在使用小程序时造成困扰,我们规定页面路径只能是五层,请尽量避免多层级的交互方式。
wx.redirectTo(OBJECT)
关闭当前页面,跳转到应用内的某个页面。
OBJECT参数说明:
示例代码:
?
123
wx.redirectTo({ url:'test?id=1'})
wx.navigateBack(OBJECT)
关闭当前页面,返回上一页面或多级页面。可通过 getCurrentPages()) 获取当前的页面栈,决定需要返回几层。
OBJECT参数说明:
动画:
wx.createAnimation(OBJECT)
创建一个动画实例animation。调用实例的方法来描述动画。最后通过动画实例的export方法导出动画数据传递给组件的animation属性。
注意: export 方法每次调用后会清掉之前的动画操作
OBJECT参数说明:
?
123456
var animation = wx.createAnimation({ transformOrigin:"50% 50%", duration: 1000, timingFunction:"ease", delay: 0})
animation
动画实例可以调用以下方法来描述动画,调用结束后会返回自身,支持链式调用的写法。
样式:
旋转:
缩放:
偏移:
倾斜:
矩阵变形:
动画队列
调用动画操作方法后要调用 step() 来表示一组动画完成,可以在一组动画中调用任意多个动画方法,一组动画中的所有动画会同时开始,一组动画完成后才会进行下一组动画。step 可以传入一个跟 wx.createAnimation() 一样的配置参数用于指定当前组动画的配置。
示例:
?
1
viewanimation="{{animationData}}"style="background:red;height:100rpx;width:100rpx"/view
?
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849
Page({ data: { animationData: {} }, onShow:function(){ varanimation = wx.createAnimation({ duration: 1000, timingFunction:'ease', }) this.animation = animation animation.scale(2,2).rotate(45).step() this.setData({ animationData:animation.export() }) setTimeout(function() { animation.translate(30).step() this.setData({ animationData:animation.export() }) }.bind(this), 1000) }, rotateAndScale:function () { // 旋转同时放大 this.animation.rotate(45).scale(2, 2).step() this.setData({ animationData:this.animation.export() }) }, rotateThenScale:function () { // 先旋转后放大 this.animation.rotate(45).step() this.animation.scale(2, 2).step() this.setData({ animationData:this.animation.export() }) }, rotateAndScaleThenTranslate:function () { // 先旋转同时放大,然后平移 this.animation.rotate(45).scale(2, 2).step() this.animation.translate(100, 100).step({ duration: 1000 }) this.setData({ animationData:this.animation.export() }) }})
wx.hideKeyboard()
收起键盘。
微信小程序(上)
注册开发者账号:
安装小程序开发工具:
创建项目
pages目录:用于存放所有的页面。
utils目录:用于存放工具类文件。
app.js:是入口文件,程序在运行时,首先要执行该文件。
app.json:是全局配置文件,用于配置小程序的信息(它里面配置的是全局信息)。
app.wxss:是全局样式文件。全局样式文件里面定义的选择器,在所有的页面中生效。
project.config.json:是项目配置文件。
sitemap.json:是SEO配置文件,方便用户搜索到该小程序。
(1)pages配置项
pages里面注册的是视图。用于指定小程序由哪些页面组成,每一项都对应一个页面的路径(含文件名)信息
(2)window配置项
window 是全局窗口配置。
backgroundTextStyle 设置文本样式(下拉loading的样式),仅支持 dark / light。
navigationBarBackgroundColor 设置导航栏背景。
navigationBarTitleText 设置导航栏文本。
navigationBarTextStyle 设置导航栏标题颜色,仅支持 black / white。
(3)style
style 设置样式级别,默认是v2。
(4)sitemapLocation
sitemapLocation 指明sitemap.json 的位置;默认为 'sitemap.json' 即在 app.json 同级目录下名字的 sitemap.json 文件。
每一个页面由四个文件组成:xxx.wxml文件、xxx.wxss文件、 xxx.js文件和xxx.json文件。
(1)xxx.wxml文件
xxx.wxml文件,就相当于一个html文件。在wxml文件中,不能写传统的html标签,只能写微信提供的组件。
① view组件
相当于div标签。
② text组件
相当于span标签。
③ swiper
swiper是滑块视图容器,它里面只能放swiper-item组件。
swiper组件的常用属性:
circular是衔接滑动
autoplay是自动切换
interval是自动切换时间间隔
indicator-dots是否显示面板指示点
indicator-color指示点颜色
indicator-active-color当前选中的指示点颜色
④ image
image是图片组件,最好全部采用网络图片,因为小程序的总体积不允许超过2MB。
(2)xxx.wxss文件
xxx.wxss文件,就相当于一个css文件。在wxss文件中,最好不要写标签选择器和id选择器,统一写类选择器。
为了让小程序里面的内容在各种设备上能够自适应显示,微信推出了响应式单位:rpx。在iphone6中,2rpx=1px。
(3)xxx.js文件
xxx.js文件,是交互文件(核心文件)。
Page()函数,返回页面对象,该函数需要传一个配置参数,这个配置参数是一个对象。在这个配置对象中,定义当前页面的所有内容。
① data
定义页面的数据。
② 自定义函数
开发者可以添加任意的函数或数据到Object 参数中,在页面的函数中用this可以访问。
(4)xxx.json文件
xxx.json文件,是页面的配置文件(它里面配置的是当前页面信息)。
WXML 中的动态数据均来自对应 Page 的 data。
(1)获取data中数据
通过插值表达式{{}},可以显示js里面定义的data里面的数据。
(2)组件属性(需要在双引号之内)
(3)运算
可以在{{}} 内进行简单的运算。
① 三元运算
② 逻辑判断
bindtap是触屏事件,其实就是相当于网页中的点击事件。
小程序中bindtap绑定方法时不能传参数。所以组件通过data-xxx传递数据。
注意: 自定义属性的命名用驼峰或者大写命名,小程序内部会自动转成小写。
8、setData()方法
setData()方法,更新页面中数据。页面数据更新后,调用setData()方法重新渲染到页面。
wx:for指令用于循环数组数据,生成组件。
循环出来的每一项通过item返回,每一项对应的索引,通过index返回。
wx:key="",设置每一项唯一的标识。循环列表时,添加wx:key的好处是,将来列表发生变化时重新渲染列表的损耗为更低。
条件渲染可以使用wx:if或hidden。
一般来说,wx:if 有更高的切换消耗而 hidden 有更高的初始渲染消耗。因此,如果需要频繁切换的情景下,用 hidden 更好,如果在运行时条件不大可能改变则 wx:if 较好。
wx:if用于条件渲染:条件为真生成里面的内容,条件为假不会生成里面的内容。(每次重新生成内容)
也可以用wx:elif 和 wx:else 来添加一个 else 块。
hidden用于条件渲染:条件为真隐藏里面的内容,条件为假显示里面的内容。(每次切换样式)
在app.json文件中添加tabBar节点。tabBar是小程序客户端底部或顶部tab栏的实现。
color:tab上的文字默认颜色,仅支持十六进制颜色。
selectedColor:tab上的文字选中时的颜色,仅支持十六进制颜色。
backgroundColor:tab的背景色,仅支持十六进制颜色。
borderStyle:tabbar上边框的颜色, 仅支持 black / white。
position:tabBar的位置,默认值是: bottom,仅支持 bottom / top。当 position 为 top 时,不显示 icon。
custom:自定义tabBar。
(2)list
list:tab的列表。
list 接受一个数组,只能配置最少 2 个、最多 5 个 tab。
pagePath:页面路径,必须在pages 中先定义。
text:tab 上按钮文字。
iconPath:图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。selectedIconPath:选中时的图片路径,icon 大小限制为 40kb,建议尺寸为 81px * 81px,不支持网络图片。
(1)跳转普通页面
方法① navigator组件
方法② navigateTo()方法
navigateTo()方法,用于跳转普通页面。
(2)跳转tabBar页面
方法① navigator组件
如果要使用navigator组件跳转tabBar页面,需要设置open-type="switchTab"。
方法② switchTab()方法
switchTab()方法,用于跳转tabBar页面。
title:提示的标题
content:提示的内容
success:接口调用成功的回调函数。回调函数中的confirm属性返回true,表示点击的是确定按钮,否则是取消按钮。
title:提示的内容
icon:图标
duration:消息提示框的显示时间
mask:是否显示透明蒙层,防止触摸穿透
模块化语法有两种:① commonjs规范,② es6规范。
nodejs环境采用的就是commonjs规范。采用exports 或 module.exports 导出成员,采用require() 导入成员。
微信小程序支持commonjs规范,同时还支持官方的ES6规范。ES6规范采用export 导出成员,采用import 导入成员。
将封装的方法放到util目录下的js文件中。可以新建js文件,也可以写在直接util.js文件中。
(1)确认框方法
定义确认框方法,并导出
(2)消息框方法
定义消息框方法,并导出
(3)获取事件参数的方法
import是ES6的导入语句。
wx对象是微信小程序的全局对象,在任何地方都可以使用。
(1) 注册语句
(2) 在app.js入口文件中导入
注意: 注册给wx对象的方法,需要在app.js文件中导入,才可使用。
(3) 调用方法
wx.方法名(参数)
微信小程序给了后台接口,前端怎样调用
1、首先在 index.js中想写逻辑代码。
2、其中page里面的data里面是前台展示时的一些数据,而onload里面是调用的接口。
3、调用的方式为get调用,返回的数据存在res里面。
4、返回的数据,而data中就是我们需要的数据。
5、data:一个入参。method:请求方式,如果是POST请求必须按上面写,默认是get请求,不用处理。complete:页面请求完成后的方法,通过that.setData将数据传递给WXML页面。success:页面加载成功后的执行方法。
简单处理下微信开发者工具开发微信小程序网络请求封装
var requestHandler = {
params: {},
api: '',
type: '',
success: function (res) {
},
fail: function () {
},
}
//GET请求
function GET(requestHandler) {
request('GET', requestHandler)
}
//POST请求
function POST(requestHandler) {
request('POST', requestHandler)
}
function request(method, requestHandler) {
//注意:可以对params加密等处理
var params = requestHandler.params;
// params.token = wx.getStorageSync('token'); 这里可以写每次请求都必带的参数
var api = requestHandler.api;
wx.request({
url: API_URL + api,
data: params,
method: method,
header: {
'Content-Type': 'application/x-www-form-urlencoded'
},
success: function (res) {
if (res.data.code == 你后台返回的状态码) {
requestHandler.success(res)
} else {
requestHandler.success(res)
}
},
fail: function () {
requestHandler.fail()
},
complete: function () {
}
})
}
module.exports = {
GET: GET,
POST: POST,
API_URL: API_URL
}
request.POST({
api:'/Login/login',
params:{
password:this.data.password,
},
success(res) {
if(res.data.code == 后台返回的状态码) {
request.showToast(res.data.msg)
setTimeout(()={
wx.reLaunch({
url:'../index/index'
})
},1000)
} else {
request.showToast(res.data.msg)
}
}
})
微信小程序如何开发呢,有没有知道的
开发前准备:
注册小程序帐号 绑定开发者
登录微信公众平台小程序,进入用户身份- 开发者,新增绑定开发者。
已认证的小程序可以绑定不多于20个开发者。未认证的小程序可以绑定不多于10个开发者。
获取AppID下载并安装开发者工具
下载完成后,使用管理员或者绑定的开发者微信号扫码登录。
一个微信小程序
创建项目
我们需要通过开发者工具,来完成小程序创建和代码编辑。
开发者工具安装完成后,打开并使用微信扫码登录。选择创建“项目”,填入上文获取到的 AppID ,设置一个本地项目的名称(非小程序名称),比如“我的第一个项目”,并选择一个本地的文件夹作为代码存储的目录,点击“新建项目”就可以了。
为方便初学者了解微信小程序的基本代码结构,在创建过程中,如果选择的本地文件夹是个空文件夹,开发者工具会提示,是否需要创建一个 quick start 项目。选择“是”,开发者工具会帮助我们在开发目录里生成一个简单的 demo。
项目创建成功后,我们就可以点击该项目,进入并看到完整的开发者工具界面,点击左侧导航,在“编辑”里可以查看和编辑我们的代码,在“调试”里可以测试代码并模拟小程序在微信客户端效果,在“项目”里可以发送到手机里预览实际效果。
编写代码创建小程序实例
点击开发者工具左侧导航的“编辑”,我们可以看到这个项目,已经初始化并包含了一些简单的代码文件。最关键也是必不可少的,是 app.js、app.json、app.wxss 这三个。其中,.js后缀的是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件。微信小程序会读取这些文件,并生成小程序实例。
//App() 函数用来注册一个小程序。接受一个 object 参数,其指定小程序的生命周期函数等。
App({
onLaunch: function() {
// Do something initial when launch.
},
onShow: function() {
// Do something when show.
},
onHide: function() {
// Do something when hide.
},
globalData: 'I am global data'
})
app.js是小程序的脚本代码。我们可以在这个文件中监听并处理小程序的生命周期函数、声明全局变量。调用框架提供的丰富的 API。
//app.js
App({
onLaunch: function() {
//调用API从本地缓存中获取数据
var logs = wx.getStorageSync('logs') || []
logs.unshift(Date.now())
wx.setStorageSync('logs', logs)
},
getUserInfo: function(cb) {
var that = this;
if (this.globalData.userInfo) {
typeof cb == "function" cb(this.globalData.userInfo)
} else {
//调用登录接口
wx.login({
success: function() {
wx.getUserInfo({
success: function(res) {
that.globalData.userInfo = res.userInfo;
typeof cb == "function" cb(that.globalData.userInfo)
}
})
}
});
}
},
globalData: {
userInfo: null
}
})
app.json 是对整个小程序的全局配置。我们可以在这个文件中配置小程序是由哪些页面组成,配置小程序的窗口背景色,配置导航条样式,配置默认标题。注意该文件不可添加任何注释。
{
"pages": [
"pages/index/index",
"pages/logs/logs"
],
"window": {
"backgroundTextStyle": "light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "WeChat",
"navigationBarTextStyle": "black"
}
}
app.wxss 是整个小程序的公共样式表。我们可以在页面组件的 class 属性上直接使用 app.wxss 中声明的样式规则。
/**app.wxss**/
.container {
height: 100%;
display: flex;
flex-direction: column;
align-items: center;
justify-content: space-between;
padding: 200rpx 0;
box-sizing: border-box;
}
创建一个人品计算器小页面
在这个教程里,我们有1个页面,即欢迎页,他们都在 pages 目录下。微信小程序中的每一个页面的【路径+页面名】都需要写在 app.json 的 pages 中,且 pages 中的第一个页面是小程序的首页。
每一个小程序页面是由同路径下同名的四个不同后缀文件的组成,如:index.js、index.wxml、index.wxss、index.json。.js后缀的文件是脚本文件,.json后缀的文件是配置文件,.wxss后缀的是样式表文件,.wxml后缀的文件是页面结构文件。
index.wxml 是页面的结构文件:
!--index.wxml--
text class='b4c7b7ce59c65b09 title'人品查看器/text
text class='59d0505dc2480172 hint'为您计算当下人品/text
button bindtap="setScore" class='505dc24801726256 check'点击查询/button
view class="c24801726256517f container"
view bindtap="bindViewTap" class="01726256517f70f4 userinfo"
image class="6256517f70f4d413 userinfo-avatar" src="{{userInfo.avatarUrl}}" background-size="cover"/image
text class="517f70f4d413fa7f userinfo-nickname"{{userInfo.nickName}}/text
text class='c24801726256517f score'{{score}}/text
text class='01726256517f70f4 info'{{info}}/text
/view
/view
本例中使用了view/、image/、text/来搭建页面结构,绑定数据和交互处理函数。
index.js 是页面的脚本文件,在这个文件中我们可以监听并处理页面的生命周期函数、获取小程序实例,声明并处理数据,响应页面交互事件等。
//index.js
//获取应用实例
var app = getApp()
Page({
data: {
score: 0,
userInfo: {}
},
//事件处理函数
setScore: function() {
var score = 60+parseInt(Math.random()*40);
var infos = [
'哇,你当下神仙附体,快去勾搭妹子',
'太阳天空照,花儿对我笑',
'喂,你是猪吗?离我远点'
];
var info;
if(score90){
info=infos[0];
}else if(score75){
info=infos[1];
}else{
info=infos[2];
}
this.setData({
score:score,
info:info
})
},
onLoad: function () {
console.log('onLoad')
var that = this
//调用应用实例的方法获取全局数据
app.getUserInfo(function(userInfo){
//更新数据
that.setData({
userInfo:userInfo
})
})
}
})
index.wxss 是页面的样式表:
/**index.wxss**/
.title{
font-size: 30px;
display: block;
padding: 10px;
font-weight: bold;
text-align: center;
}
.hint{
display: block;
padding: 10px 20px;
color:#999;
text-align: center;
}
.check{
width: 100px;
}
.userinfo {
display: flex;
flex-direction: column;
align-items: center;
}
.userinfo-avatar {
width: 128rpx;
height: 128rpx;
margin: 20rpx;
border-radius: 50%;
}
.userinfo-nickname {
color: #aaa;
text-align: center;
display: block
}
页面的样式表是非必要的。当有页面样式表时,页面的样式表中的样式规则会层叠覆盖 app.wxss 中的样式规则。如果不指定页面的样式表,也可以在页面的结构文件中直接使用 app.wxss 中指定的样式规则。
index.json 是页面的配置文件:
页面的配置文件是非必要的。当有页面的配置文件时,配置项在该页面会覆盖 app.json 的 window 中相同的配置项。如果没有指定的页面配置文件,则在该页面直接使用 app.json 中的默认配置。
运行结果如下:
手机预览
开发者工具左侧菜单栏选择"项目",点击"预览",扫码后即可在微信客户端中体验。
手机端效果
关于微信小程序开发successthen和微信小程序开发教程的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。