数据获取

在index.ts/index.js中书写,定义数据info

Component({//相当于pages
  data: {
    info:'text'
  },
 }

在wxml中使用{{}}进行调用

<view> {{info}}</view>

结果: alt

三目运算和随机数; js:

  data: {
    rom:Math.random()*10//生成十以内的随机数
    rom2:Math.random().toFixed(2)//生成两位小数的随机数
  },

判断随机数是否大于五。 wxml:

<view> {{rom>=5 ? 1:0}}</view>

事件绑定:

alt

alt target和currentTarget的区别:如果是view内有button,那么点击button时view也会做出反应,view的currentTarget收到的对象是view(当前组件),target收到的对象是button。(事件发出者) alt

事件点击函数: 收到点击按钮的返回值 js界面:

  methods: {
      //定义按钮的事件处理函数
  
    btn(e: any){
    console.log(e)
  },

wxml界面:

<button type="primary" bindtap="btn">点击!</button>

调试器窗口:

alt

为data中的数据赋值

在data中定义参数:

  data: {
    count:0,
  },

在js中的事件处理函数定义:

 CountChange(){
    this.setData({
      count:this.data.count+1
    })
    console.log('count+1')
  },

点击按钮:

<button type="primary" bindtap="CountChange">点击+1!</button>

执行结果:

alt

小程序传参:

data-* 传参,info为参数名字,{{}}里面为数字,若不用这个传递的为字符串。

<button type="primary" bindtap="btn2"
data-info="{{2}}">点击事件传参!</button>

输出显示的数据在这里:

alt

事件处理函数:

  btn2(e: any){
    this.setData({
      count :  this.data.count+e.target.dataset.info
    })
  },

运行结果:

alt

绑定文本框输入

wxml界面:

<input bindinput="bp"></input>
//使用bindinput绑定函数

ts界面:

  bp(e:any){
    console.log(e.detail.value)
  },

输入框: alt

调试台输出: alt

将文本框输入的文字存储在小程序中:

初始状态: alt 调试台: alt

输入字之后的效果: alt

调试台:

alt

wxml代码:

<input  value="{{msg}}" bindinput="bp"></input>
//value用来传递信息,bindinput用来绑定文本存储

wxss界面:

input{
  border: 1px solid rgb(171, 140, 119);
  margin: 5px;
  padding: 5px;
  border: radius 3px; 
  color: #ecc776;
}

ts界面:

data: {
    msg:'我一直是仙术杯厨啊'
  },
  
Component({
  bp(e:any){
    console.log(e.detail.value)
    this.setData({
      msg:e.detail.value
    })
  },
})

条件渲染

在wxml:判断flag为1,输出第一个,为2,输出第二个,为其他输出第三个。

<!--index.wxml-->
<view wx:if="{{flag == 1}}">龍門大學附屬高中·陌域坍縮部</view>
<view wx:elif="{{flag == 2}}">仙术杯</view>
<view wx:else>绝密档案</view>

在js的data里输入:

  data: {
    flag:1,
  },

使用 < block > 进行多个组件的if判断:(block不会被渲染成新的组件)

true可以整体显示,flase可以整体隐藏

<block wx:if="{{true}}">
  <view>龍門大學附屬高中·陌域坍縮部</view>
  <view>仙术杯</view>
  <view>绝密档案</view>
</block>

hidden元素 显示为true为隐藏,false为显示

此时被隐藏。

<view hidden="{{true}}">龍門大學附屬高中·陌域坍縮部</view>

wx:if和hidden的对比:

alt

列表渲染

for循环:index表示索引,a表示数组名,item为数组内内容 wxml页面:

<!--index.wxml-->
仙术杯队伍:
<view wx:for="{{a}}">
  {{index+1}}.{{item}}
</view>

js界面:

  data: {
    a:['龍門大學附屬高中·陌域坍縮部','冠军厨小队',"终始研究所","三鸽萧粽","女仆草莓酱香咖啡厅","余阳映白雪"]
  },


输出示例: alt

也可以把index和item的名字改了:

仙术杯队伍:
<view wx:for="{{a}}" wx:for-index="idx" wx:for-item="i" >
  {{idx+1}}.{{i}}
</view>

输出结果是一样的。

wx:key 用来提高渲染性能

wxml:使用key指定在js中命名的id

<view wx:for="{{a2}}" wx:key="id" >
  {{item.name}}
</view>

js:在data里:

    a2:[
      {id:1,name:'龍門大學附屬高中·陌域坍縮部'},
      {id:2,name:'冠军厨小队'},
      {id:3,name: "终始研究所"},
      {id:4,name: "三鸽萧粽"},
      {id:5,name:"女仆草莓酱香咖啡厅"},
      {id:6,name:"余阳映白雪"}],

输出结果: alt

前面的数组a也可以达到这种效果:

仙术杯队伍:

<view wx:for="{{a}}" wx:key="index" >
  {{item}}
</view>