| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 移动开发 -> 小程序开发学习笔记 -> 正文阅读 |
|
[移动开发]小程序开发学习笔记 |
?小程序
网页运行在浏览器中 小程序运行在微信环境中
由于运行环境不同,所以小程序中无法调用DOM和BOM的API。但是,小程序可以调用微信环境提供的各种API,例如:地理定位,扫码,支付
网页的开发模式:浏览器+代码编辑器 小程序有自己一套标准开发模式:申请开发账号+安装小程序开发工具+创建和配置小程序项目
2、开发者工具快捷键
.js文件(页面的脚本文件,存放页面的数据,事件处理函数等) .json文件(当前页面的配置文件,配置窗口的外观,表现等) .wxml(页面的模板结构文件) .wxss(当前页面的样式表文件)
在app.json中找到pages节点,然后增加一项
WXML[ <Scroll-view class=”container”??scroll-x ?scroll-with-animation=’ture’> <view>A</view> <view>B</view> <view>C</view> </scroll-view> ] WXSS[ .container view{ Width:100px; Height:100px; Text-align:center; Line-height:100px; } .container?view:nth-child(1){ ??margin-right:?30rpx; ??display:?inline-block; ??background-color:lightgreen; } .container?view:nth-child(2){ ??margin-right:?30rpx; ??display:?inline-block; ??background-color:brown; } .container?view:nth-child(3){ ??display:?inline-block; ??background-color:deeppink; } .container?{ ??border:1px?black; ??width:100px; ??height:?300px; ??white-space:?nowrap; }? ]
十、不同项目成员对应的权限
Page({ Data: { //字符串类型的数据 Info: ‘init data’, // 数组类型的数据 MsgList: [{msg: ‘hello’},{msg: ‘world’}] } })
在data中的数据绑定 到页面中渲染,使用Mustache语法(双大括号)将变量包起来即可。语法格式为: <view>{{ 要绑定的数据名称 }}</view>
.js[??data:?{ ????info:?'hello??mia', ????imgSrc:?'http://www.itheima.com/images/logo.png', ????randomNum:?Math.random()/*生成0-1的随机小数*/.toFixed(2)/*保留小数点后两位*/*10 ??}, .wxml[ <view>{{info}}</view> <image?src="{{imgSrc}}"?mode="widthFix"></image> <view>随机数:{{randomNum}}</view> <view>随机数的一百倍:{{randomNum?*?100}}</view> <view>{{?randomNum?>=5???'随机数字大于或等于五'?:?'随机数字小于五'?}}</view>??
事件是渲染层到逻辑层的通讯方式。通过事件可以将用户在渲染层产生的行为,反馈到逻辑层进行业务的处理 ?2、小程序常用的事件
?3、事件对象的属性列表 4、target和currentTarget的区别 Targe是触发该事件的源头组件,而currentTarget则是当前事件所绑定的组件。举例如下: <view?class="outer-view"?bindtap="outerHandler"> ?? <button?type="primary">按钮</button> </view> 如上代码,点击内部的按钮时,点击事件以冒泡的方式向外扩散,也会触发外层view的tap事件处理函数。 此时,对于外层的view来说: e.target指向的是触发事件的源头组件,因此,e.target是内部的按钮组件 e.currentTarget指向的是当前正在触发事件的那个组件,因此,e.currentTarget是当前的view组件 5、bindtap使用 .wxml[ //定义一个按钮,及事件处理函数 <button?type="primary"?bindtap="CountChange">+1</button> ] .js-data[ 定义一个变量并赋值 count:0 ] .js[ //按钮点击事件处理函数 ??CountChange(){ //事件触发时打印OK ???? console.log('OK'), //事件触发时变量数值+1 ??? ?this.setData({ ?????? count:?this.data.count?+1 ???? }) ?? }, ] 6、传参格式 <button bindtap=”btnHandler” ?data-info=”{{2}}”>按钮</button> Info为参数名称,2为参数 7、为data中的数据赋新值 Count:this.data.count + 1 十二、条件渲染 1、if语句 //如果count=1,则创建view显示男 <view?wx:if="{{count===1}}">男</view> //如果count=2,则创建view显示女 <view?wx:elif="{{count===2}}">女</view> //否则创建view显示保密 <view?wx:else???>保密</view> 2、使用block标签一次控制多个组件的展示与隐藏 <block wx:if=”{{true}}”> <view></view> <view></view> <view></view> </block> 注:控制条件复杂时推荐使用
<view hidden=”{{flag}}”>条件为true隐藏,条件为false显示</view> 注:频繁切换时使用 十三、列表渲染
.js.data[ arr:?['苹果',?'小米',?'华为'], userList:?[ ??????{id:1,name:'小红'}, ??????{id:2,name:'小黄'}, ??????{id:3,name:'小白'}, ????] ]
<view?wx:for="{{arr}}"> ??索引是:{{index}},item是:{{item}} </view> <view?wx:for="{{userList}}"?wx:key="id">{{item.name}}</view> 十四、wxss 1、屏幕总宽:750rpx 2、样式导入格式: @import?"/common/common.wxss";
十五、全局配置 1、了解window节点常用的配置项
2、TabBar节点属性
3、每个tab项的属性
Project.config.json->setting->增加”checkSiteMap”:false 十六、导航 1、声明式导航 导航到tap页面 <navigator?url="/pages/message/message"?open-type="switchTab">导航到消息页面</navigator> 导航非tap页面 <navigator?url="/pages/info/info"?open-type="navigate">导航到info页面</navigator> 回退 <navigator?open-type="navigateBack"?delta="1">后退</navigator>
跳转到tap页面 <button?bindtap="gotoMessage">跳转到message页面</button> ??gotoMessage(){ ????wx:wx.switchTab({ ??????url:?'/pages/message/message' ????}) ??}, 跳转到非tap页面 <button?bindtap="gotoInfo">跳转到Info页面</button ??gotoInfo(){ ????wx:wx.navigateTo({ ??????url:?'/pages/info/info' ????}) ??}, 后退 <button?bindtap="gotoback">后退</button> ??gotoback(){ ????wx.navigateBack({ ??????delta:?1, ????}) ??},
<navigator?url="/pages/info/info?name=张三&age=20">跳转到info页面</navigator>
wx.showLoading({ ??????title:?'数据加载中...', ????})
complete:()=>{ ????????wx.hideLoading() ????????this.setData({ ??????????isloading:false ????????}) ??????} ????}) 注:不知道为什么,从后端传上来的图片在开发者工具上面可以展现,但是在真机上面却展示不出来。 |
|
移动开发 最新文章 |
Vue3装载axios和element-ui |
android adb cmd |
【xcode】Xcode常用快捷键与技巧 |
Android开发中的线程池使用 |
Java 和 Android 的 Base64 |
Android 测试文字编码格式 |
微信小程序支付 |
安卓权限记录 |
知乎之自动养号 |
【Android Jetpack】DataStore |
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/25 15:45:29- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |