03微信小程序-视图与逻辑1

2021-01-12  本文已影响0人  东邪_黄药师

数据绑定与事件绑定

定义页面的数据
Page({
 data: {
 info: 'init data', // 字符串类型的数据
 array: [{msg: '1'}, {msg: '2'}] // 数组类型的数据
 }
})
Mustache语法格式

把data中的数据绑定到页面中渲染,使用 Mustache 语法(双大括号)将变量包起来即可;
语法格式为:

<view>{{ info }}</view>
Mustache 语法的主要场景
案例:
<!-- 页面结构 -->
<!-- 绑定内容和属性 -->
<view id="item-{{id}}">{{ info }}</view>
<!-- 算数运算 -->
<view>{{ 1 + 1 }}</view>
<!-- 三元表达式 -->
<view>{{ id == 10 ? "正确" : "错误" }}</view>
// 页面数据

Page({
  data: {
    info: 'i miss you',
    id: 10,
    arr: [1, 2, 3]
  }
})

小程序中的事件

什么是事件
1.bindtap绑定触摸事件

在小程序中,不存在网页中的 onclick 鼠标点击事件,而是通过 tap 事件来响应触摸行为;

<view bindtap=“tapName”> Click me! <view>
Page ({
 tapName: function(event) {
   console.log(event)
  }
})
2.bindinput绑定文本框输入事件

在小程序中,通过 input 事件来响应文本框的输入事件;

<input bindinput=“inputName”><input>
Page({
 inputName: function(event) {
   console.log(event)
  }
})

data和文本框之间的数据同步

inputName: function (event) {
// 获取到文本框中最新的内容
console.log(event.detail.value) }
inputName: function (event) {
this.setData({
msg: event.detail.value // 为 data 中的 msg 重新赋值
   })
}

事件传参

通过 data-* 自定义属性传参
如果要在组件触发事件处理函数的时候,传递参数,可以为组件提供 data-* 自定义属性传参。

获取 data-* 自定义属性中传递的参数

示例代码如下:

<button bindtap='eventHandle' type='primary' data-info='info'>传递参数</button>
// 页面逻辑

Page({
  data: {},
    
  eventHandle: function (e) {
    console.log(e.target.dataset.info)
  }
   
  // coding...
})

wxs 脚本

wxs(WeiXin Script)是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。

wxs 的注意事项
wxs 遵循 CommonJS 模块化规范

CommonJSjavascript 的模块化规范之一,小程序的脚本语言 wxs 遵循了 CommonJS 规范,因此,使用 wxs 时的体验和使用 node.js 的体验比较相似。

wxs 基础语法

var foo = “‘hello world’ from wxs”; // 定义私有变量 foo
var bar = function (d) { // 定义私有函数 bar
 return d;
}
module.exports = { // 通过 modules.exports 向外共享私有成员
 FOO: foo, // 向外共享私有变量 foo
 bar: bar, // 向外共享私有函数 bar
};
module.exports.msg = “some msg”; // 额外向 module.exports 中挂载 msg 变量
// 使用 require 导入 tools.wxs 脚本
var tools = require("./tools.wxs");
// 得到的 tools 对象,可以直接访问到 tools.wxs 中向外暴露的变量和方法

内嵌 wxs 脚本

内嵌 wxs 脚本的示例代码:
<view>{{ info.msg }}</view>

<wxs module='info'>
  var msg = '我在等风来'

  module.exports = {
    msg: msg
  }
</wxs>
外联 wxs 脚本文件
// /pages/tools.wxs
var foo = "'hello world' from tools.wxs";
var bar = function (d) {
 return d;
}
module.exports = {
 FOO: foo,
 bar: bar,
};
module.exports.msg = "some msg";

<wxs src='./ling.wxs' module='feng'></wxs>
<view>{{ feng.msg }}</view>
<view>{{ feng.handle('我在等风') }}</view>

注意:在 wxs中不要使用高级的JS语法

上一篇下一篇

猜你喜欢

热点阅读