小程序基础

小程序

1 view 相当于 div 、 text 相当于 span 、block 相当于 <template>

2 判断 wx:if 、wx:elif 、 wx:else

  • Eg:
<view>
  <text wx:if="{{scord > 60}}"></text>
  <text wx:elif="{{scord > 54}}"></text>
  <text wx:elif="{{scord > 53}}">还行</text>
  <text wx:else></text>
</view>

3 列表渲染

  • 如果有一个数组,那么可以使用wx:for={{数据}}

  • wx:for需要添加wx:key key中是遍历出来的对象中的属性名

  • wx:for会自动生成item 和 index两个变量

  • 如果我们需要修改item和index的名字

    • wx:for-item=“新的名字”
    • wx:for-index=“新的名字”
  • Eg:

 <view wx:for="{{array}}" wx:key="name" wx:for-item="msg" wx:for-index="i">{{msg.name}}-{{i}}</view>

4 数据请求

在微信小程序中,想要请求数据可以使用wx.request()

如果我们调用该方法,一定会报错,因为小程序会校验可信任接口,如果没有添加,则无法被请求。我们可以在小程序右上角“详情” -> "本地设置"中勾选不校验合法域名选项(开发环境中就不会有问题)

wx.request({
  url: 'url',
  data: data,
  header: header,
  method: method,
  timeout: 0,
  success: (result) => {},
  fail: (res) => {},
  complete: (res) => {},
})

5 事件

1 生命周期函数 onLoad 监听页面加载完成

2 事件绑定 bindtap=“page中的函数名” 传参,可通过data-xxx

  • Eg:
<button class="btn" bindtap="getMsg" data-key="value">xxx</button>
Page({
  data: {
  },
  tapHandler (e) {
    // e.currentTarget.dataset.key
  }
})

3 input实现数据双向绑定 通过 bindinput

<input type="text" placeholder="请输入内容" class="ipt" value="{{value}}" bindinput="changeValue"/>

6 wxs !!!

  • wxs是一个微信的脚本语言,大致语法和js一致
  • wxs是用来导出模块,然后我们可以利用wxs标签引入模块

demo.wxs

module.exports = {
  modulename:}

demo.wxml

<!-- 引入 -->
<wxs src="./demo.wxs" module="自定义模块名"></wxs>
<!-- 使用 -->
{{自定义模块名.modulename}}

7 data

  • 在小程序中,如果我们想要获取到对应的data中的数据,需要使用this.data.属性名的操作。

1 setData
this.setData用于修改设置我们的data中的值,直接修改是不支持动态渲染。

Page({
  data: {
    msg: "消息",
    arr: [1,2,3,4],
    obj: {
      name: '张三'
    },
    obj2: {
      arr: [{name: '李四'}]
    }
  }
})
this.setData({
  msg: '新的值',
  arr: [123,45324,6437],
  'arr[1]': '新的值', //注意此写法 react不能这样写
  obj: {新的对象},
  "obj.name": '新的名字', //注意此写法 react不能这样写
  "obj2.arr[0].name": "新的名字" //注意此写法 react不能这样写
})

2 setData回调函数

  • setData是一个异步操作,存在回调函数
this.setData({}, function () {
  // 这个函数会在setData之后执行
})

8 组件

  • 创建组件需要使用Component构造器,包含组件的js wxml wxss json
Component({
  /* 组件标签上的属性 */
  properties: {
    msg: {
      type: String
    }
  },
  data: {
  },
  methods: {
  }
})

注册组件

  • 在需要使用组件的页面或组件的json文件中,配置usingComponents
{
  "usingComponents": {
    "组件标签名": "组件路径"
  }
}

使用

  • 注册组件后我们就可以在对应的页面或父组件中使用<组件标签名></组件标签名>

9 组件通信

父子通信

  • 父子通信和vue中父子通信一致,给组件标签上添加属性及值,就可以在组件内部通过properties获取
  • Eg:
Page({
  data(){
   msg:"xxx"
  }
 })
<view>
  <nav msgs="msg"></nav>
</view>
Component({
  properties: {
    category:{
      msgs:String
    }
  },
})

子父通信

  • 和vue一样,子组件中通过this.triggerEvent触发对应的自定义事件并传递数据

  • 父组件中,给子组件标签上绑定事件bind:自定义事件名="函数",子组件传递的数据就是e.detail.key

Component({
  methods:{
    ...
    this.triggerEvent("事件名AAA",value) 
  }
})
<view>
    <nav bind事件名AAA="自定义名字"></nav>
    <!-- 或 -->
      <nav bind:事件名AAA="自定义名字"></nav>
</view>
Page({
  自定义名字(e){
    //e.detail中就是传过来的数据
  }
})
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值