IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序入门知识点汇总 -> 正文阅读

[移动开发]微信小程序入门知识点汇总

整理自慕课网实战课《微信小程序入门 2020全新版》

下方只是简单的归纳常用的点,更多知识可以查看小程序开发文档。

1.JSON对象和JS对象的区别

JSON只是一种数据格式(或者叫数据形式)。
我们所说的json对象其实就是严格符合json格式的js对象。

<script>
var obj2={};//这只是JS对象
var obj3={width:100,height:200};/*这跟JSON就更不沾边了,只是JS的 对象 */
var obj4={'width':100,'height':200};/*这跟JSON就更不沾边了,只是JS的对象 */
var obj5={"width":100,"height":200,"name":"rose"}; /*我们可以把这个称做:JSON格式的JavaScript对象 */
var str1='{"width":100,"height":200,"name":"rose"}';/*我们可以把这个称做:JSON格式的字符串 */
var a=[
 {"width":100,"height":200,"name":"rose"},
 {"width":100,"height":200,"name":"rose"},
 {"width":100,"height":200,"name":"rose"},
 ];
 /*这个叫JSON格式的数组,是JSON的稍复杂一点的形式 */
var str2='['+
 '{"width":100,"height":200,"name":"rose"},'+
 '{"width":100,"height":200,"name":"rose"},'+
 '{"width":100,"height":200,"name":"rose"},'+
 ']' ;
 /* 这个叫稍复杂一点的JSON格式的字符串 */
</script>

参考文章:JSON与JS对象的区别与对比

2.px和rpx的区别

rpx 是微信小程序解决自适应屏幕尺寸的尺寸单位。微信小程序规定屏幕的宽度为750rpx。
无论是在iPhone6上面还是其他机型上面都是750rpx的屏幕宽度,拿iPhone6来讲,屏幕宽度为375px,把它分为750rpx后, 1rpx = 0.5px。

3.flex布局

采用Flex布局的元素,称为Flex容器(flex container),简称”容器”。它的所有子元素自动成为容器成员,称为Flex项目(flex item),简称”项目”。
有主轴和交叉轴,主轴由flex-direction决定。

.tool{
  display: flex;
  flex-direction: column;        //竖直的为主轴
  align-items: center;        //align-items属性定义项目在交叉轴上如何对齐。
  justify-content: center;    //justify-content属性定义了项目在主轴上的对齐方式。
}

4.属性中字符串和JS表达式的区别

<checkbox checked="{{false}}"> </checkbox>

特别注意:不要直接写 checked=“false”,其计算结果是一个字符串,转成 boolean 类型后代表真值。

{{ }}中只能写js表达式,不能写函数等。

5.数据绑定Paga.data和SetData函数

Page({
    data: {
    a:"zhu"
  },

  /**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    this.setData({
        a:"cheng",
        b:"song"
        })
    console.log(this.data)
  },
})

data中一般写初始化数据(先显示定义),setData一般对数据进行创建+更新。

wxml界面:

<view> {{a}} </view>

6.DOM优先和数据优先

<script>
var a = "Hello World!";
document.getElementById("demo").innerHTML = a;
</script>

上方是传统的DOM优先,需要获取DOM结点。

现在小程序框架可能会用到DOM,一般开发就用数据优先的思想。小程序的数据优先的思想是用数据绑定来实现的。
在wxml的DOM节点中直接用表达式{{a}},更加的方便。

7.生命周期函数和特殊回调函数

初次打开一个页面执行顺序:

  • onLoad(监听页面加载)
  • onShow(监听页面显示)
  • onReady(监听页面初次渲染完成)

切到后台

  • onHide(监听页面隐藏)

再切到前台

  • onShow(不会再执行onLoad和onReady)

特殊回调函数:

/**
 * 页面相关事件处理函数--监听用户下拉动作
 */
onPullDownRefresh: function () {

},
/**
 * 页面上拉触底事件的处理函数
 */
onReachBottom: function () {

},

8.条件渲染和列表渲染

条件渲染:

<view wx:if="{{condition}}"> 123 </view>
<view wx:else> 456 </view>

Page({
  data: {
    condition: true
  }
})

列表渲染:

var postList = [{...},{...},{...},]       //js对象数组

//一次循环获得的对象名为item,类似于(for item in postList)
<block wx:for="{{postList}}" wx:key="index"  wx:for-item="item" wx:for-index="idx">
	<post bind:posttap = "onGoToDetail" res="{{item}}"/>
</block>

for-index就是每项的索引,从0开始。
for-item是每一项的引用。
wx:key="index"能加快性能。index字段是表中的唯一键。

9.路由函数NavigateTo和RedirectTo的区别

wx.navigateTo({
  url:'/pages/post-detail/post-detail?pid=' + pid
})

navigateTo会保存当前页面,会形成页面栈,现在页面栈最大为10。屏幕左上角会有返回键。

wx.redirectTo({
  url:'/pages/post-detail/post-detail?pid=' + pid
})

redirectTo会销毁当前页面,屏幕左上角会有主页键。

10.Catch与Bind事件的区别

<view bind:tap="onViewTap" class="journey-container">
  <text catch:tap="onTextTap" class="journey">开启小程序之旅</text>
</view>

点击“开启小程序之旅”这个文本,只会触发onTextTap事件。

catch会阻止事件继续冒泡。

<view catch:tap="onViewTap" class="journey-container">
  <text bind:tap="onTextTap" class="journey">开启小程序之旅</text>
</view>

点击“开启小程序之旅”这个文本,会触发onTextTap事件和onViewTap事件。

11.自定义属性命名规则

在这里插入图片描述自定义属性以“data-”开头,点击获取的event事件中,自定义属性会在dataset中,并去掉“data-”。

关于大小写:自定义属性data-post-id 会变成 postId。自定义属性data-postId会变成 postid。想要有驼峰,需要以“-”分割。

12.app.js的意义和作用

app.js作为项目的入口文件,用于创建应用程序对象。
启动小程序,会执行onLaunch()。
app.js还可以保存全局变量。

App(
  {
    onLaunch(){
      console.log("小程序启动")
    },
    gIsPlayingMusic:false,
    gIsPlayingPostId:-1,
    gBaseUrl:"http://t.talelin.com/v2/movie/"
  }
)

13.缓存与异步

onLoad: function(){
  wx.setStorageSync('flag', 1)
  const flag = wx.getStorage({
    key: 'flag'
  })
  console.log(flag)   //输出Promise
}

采用回调的方式:

onLoad: function(){
  wx.setStorageSync('flag', 1)
  const flag = wx.getStorage({
    key: 'flag'
    success(value){
      console.log(value.data)        //输出1
    }
  })
  console.log(flag)   //输出undefined,回调的话,不会返回flag。
}

采用Promise方式:

onLoad: function(){
  wx.setStorageSync('flag', 1)
  const flag3 = wx.getStorage({
    key: 'flag'
  })
  flag3.then(value => console.log(value.data))    //输出1
  console.log(flag3)   //输出Promise
}

采用async/await方式:

onLoad: async function (options){
 wx.setStorageSync('flag', 1)
 const flag4 = await wx.getStorage({
   key: 'flag'
 })
 console.log(flag4)   //输出{errMsg: "getStorage:ok", data: 1}
}

14.Page中的this和that

Page({
	getWeRunData: function() {
	  var that = this
	  wx.getWeRunData({
	    success(weRunEncryptedData) {
	      console.log(weRunEncryptedData)
	      that.getStepInfoList(weRunEncryptedData)
	    }
	  })
	},
})

Page(…)中传入的是一个js对象1,相当于一个匿名对象1,this就是指的这个。
但是wx.getWeRunData(…)中也要传一个js对象2,他的this指向这个匿名对象2,为了让wx.getWeRunData(…)中调用Page(…)的其他属性,必须把Page(…)的this赋值给that。

15.小程序的函数定义

Page({
   onLoad: function (){
    this.dd(),
    this.dd2(),
    this.dd3()
  },

  dd: function (){    //最常见的写法,相当于一个匿名函数,dd只是它的key。
    console.log(2)
  },

  dd2: () => {
  console.log(3)
  },
  
  dd3(){				//简化写法
    console.log(4)
  },

  dd4: function aa(){    //给函数个名字也行,不过没啥用。
    console.log(5)
  },
  
	//function aa() {    //直接写function是错的。
	  //return 2
	//},
})
  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2021-09-03 12:02:02  更:2021-09-03 12:02:05 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年1日历 -2025/1/31 5:46:51-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码