style 对象 微信小程序_微信小程序学习(5)

本文详细介绍了微信小程序中style对象的使用以及数据绑定的实现,涵盖wxml、wxss、js文件的配合,包括数据初始化、事件绑定、setData方法、变量和函数作用域、条件渲染、列表渲染等核心概念,通过实例展示了如何在小程序中构建动态页面效果。
摘要由CSDN通过智能技术生成

整体框架的介绍

7174b37602e2d2be9f13bd0169fe6b18.png

一、数据及事件绑定

(1)总体介绍和思路

5640d9e963a1057360951cb5a7f8e1a3.png

实现效果,点击后数据改变

数据绑定,通过{{}}实现,里面变量有对应值

对于对象绑定,也是在{{}}中,对象加属性

数组元素是数组名加下标

34fd6ee0a8371c42cdd8ad880061ca4b.png 0d527c15ffc85b7f1f79a7bb59ba3b74.png

(2)代码及其解释

  1. index.wxml

先是边框加标题样式,后面一系列的绑定通过{{}}实现,最后是一个按钮,type为primary,事件绑定函数为modify,显示的文字。

e7700be504592c116228cd09c8d45992.png

2.index.wxss

直接设置view中的颜色,字的大小和上下左右的边距。

c2dd824ee41e32c2ed10efbf40c9e365.png

3. app.wxss--见前面推文,是边框和标题的样式设置

4.index.js,index.wxml中数据值来源

先有一个data,定义了数据,包括数值变量,对象有三个属性,一个数组有三个元素。小程序的渲染完成就是直接把data中的数据渲染到视图层,可以看到数据。再看时间绑定函数,点击会调用,调用了小程序预定义的setData函数,可以修改data中定义的初始值,修改数据绑定的值。

060fd5af330938fbc3b91f44cf33af03.png c74258a426e957098e0776959f89f198.png

(3)总结

wsml,框架设计的一套标签语言,结合基础组件,事件系统,可以构建页面的结构。

data是页面第一次渲染中使用的初始数据,wxml中的动态数据均来自page的data。页面加载时,data以json字符串的形式由逻辑层传到渲染层。数据类型包括字符串,数字,布尔值,对象,数组等

数据绑定,渲染层可以通过wxml对数据进行绑定,数据绑定采用{{}}把变量包起来,可以用作内容,组件属性,控制属性,关键字,运算,组合,数组,对象等场景。

setData 可以吧把数据从逻辑层发送到视图层(异步)同时改变对应的this.Data的值(同步)

事件绑定,视图层到逻辑层的通讯方式,把用户的行为反馈到逻辑层进行处理,事件可以绑定在组件上,当触发事件,就会执行逻辑层中的对应事件处理函数,事件对象可以携带额外学习,如id,以及dataset,touches。

c9c650c26c9de38799f4b105ecfc1f2d.png 3b69af8e897851efc88a21121534b88e.png babb03582f9cffe464b9ffe18af4ccfa.png 529a81806d251131b92caeace4df758c.png f7127d3282fabeb3fbb827c9ca533073.png 35cc61d29f31ab3a7558d67a3b88bba5.png 52ba9f4f3955b90b18da9045f66492b1.png

二、变量和函数的作用域及其模块化

  1. 案例描述和思路

9459665fd10adceecdc25a3efa823272.png 3bc063efa86247f3ae68846e493d657e.png

(2)代码实现

  1. index.wxml和index.wxss

边框样式和标题,然后是引用不同地方的变量和函数。在pages中新建目录util来新建模块。共有六个view,其中通过{{}}进行数据绑定,获取从逻辑层传过来的数据。

再是直接设置view外观的设置,字体大小和底部外边距。

0a55334d82e250637fcaf8e44104adeb.png

01

c0c8cd94773c8941bee0782b4ae5b7ed.png

2.index.js和app.js和util.js

数据绑定中变量定义在data中,其中只有msg3和msg4都是在本文件中定义,可以直接使用。而对于msg1和msg2是使用全局变量和全局函数。通过app来访问的,在开头获取全局应用实例,而详细的定义是在app.js中在App({})定义变量和函数,这样就可以通过在文件中定义全局对象实例来直接使用定义的变量和函数。

而msg6和msg5是在新建的文件中定义的,其中定义了变量和函数,如果要在其他模块中使用,要先在新建的文件中加上module.exports输出变量和函数,才可以在其他模块中使用,而在其他文件中要通过定义变量获取模块应用实例 require。

最后通过渲染看到数据。

39ae38b4c5501081f5198bc3a9b4d896.gif fee857b64280130fa093b34d6e124237.png 51ba59a8943ea05701715d32f2c8c959.png 6cfa6fea1d84291088e9a4a04d813bc5.png 513061c22f7463125657ca970e2f7e8d.gif

(3)知识点总结

文件中声明的变量和函数只是在该文件中有效,不同文件可以有同名的变量和函数,不会互相影响。

全局的应用实例可以通过getApp()获取,全局的数据也可以再App()中设置。

其他模块需要通过module.exports或者exports对外暴露接口,在需要使用这些模块的文件中,使用require(path 相对路径)来引入。

其中其他模块可以中可以有一些公共的代码抽离成为一个单独的js文件

0901d7dc05a19f2ec073d948bfcd24b6.png

三、条件渲染

(1)设计思路

14bf2fc964cb11287e976752f617a8ec.png

了解条件渲染的使用。

实际操作实现效果如下。

5f5342d5c6dadb1338a1d64578921220.png

(2)代码

1,index.wxml文件

条件渲染中wx:if和wx:elseif和wx:else的实现机制。

把条件渲染语句放在view或者是block

在view中,只有在每一个view中需要放入wx: ,

才能 对该行文本进行渲染,如果block中,可以对多行view进行渲染。

第一个view的样式style,直接再其中定义

边距上下左右为20,文本水平居中。条件渲染中,如果color(从js中传递而来)为判断中语句,就显示对应文本。

最后有一个样式是view-item,背景颜色对应color,从js的Data定义的值,即依据js中传递过来的color判断显示的文字,最后显示对应的比较颜色。

同样先定义了一个style同上,边距和文本水平居中,利用block实现条件渲染,在block中写入条件wx:if="{{}}",如果length大于10,执行其中的内容。view中class样式有view-item和 后面对应的背景颜色颜色,空格隔开即可。

447f1233b7fd5f5a8190123bf7c62447.png

2.index.wxss

第一个宽度和高度,接着3个背景颜色。

932f40a1428bf5870fb4ff318120c2d4.png

3.index.js

在page中的data设置变量的数据,通过数据的绑定来实现视图层的渲染。

2276efa867ed0f322aeb683dffcf0548.png

(3)总结

使用了wx:if="{{condition}}"判断是否要渲染该代码块,显示。也可以通过wx:elseif和wx:else来添加一个else块。

而在block中使用wx:if,作为一个包装元素,把多个view包装,通过控制属性来判断。不会做渲染,只是接受控制属性。

10ca926e8305c4625e27e70cea7072ac.png 3fd579b505454fcbfb0a1999bba67053.png f00f0f61a9abe32c2cdd2eada8748490.png 8fc23008ec6de0bb431dc382c359aa8c.png 0ed2b8b986990729bc4d52ab3e5fd278.png

四、成绩等级计算

(1)设计思路

输入成绩(在0到100)输出对应等级(不及格,及格,良好,优秀),输入不在这个范围内提示不正确。

实现效果如下

b38985aa2ffa6e5a642aa30a00b8931d.png

(2)代码

  1. index.wxss和index.wxml文件

边框box和标题title,后面失去焦点触发事件发生,调用在js中定义快递scoreInput函数,后面可能是五个条件渲染语句,在{{}}中给出判断语句,输出对应语句。输入的数值在js中,通过数据绑定来到视图层。

input样式,上边距,下边距,宽度,高度,边界粗细,实线,颜色。

5ce0c7c9c854ddd532ff6d03d612282e.png d6f8f679d3dcaa8024dea6d8b26e97bd.png

2 .index.js

data中定义score初始值,下面的函数是事件绑定函数,失去焦点就调用该函数,给score赋值,e就是这个事件,针对的对象就是e.detail,就是input组件,然后把值赋给score。渲染到视图层得到值。

e3f39279101195f5cc168e5ca69e2a33.png

(3)总结

  1. 综合应用了input组件和wx:if来实现等级的判断

  2. 多级条件渲染wx:if的方式。

五、列表渲染

(1)设计思路

编写一个小程序,利用wx:for实现对数组,对象以及字符串的列表渲染,利用wx:for-index和wx:for-item实现对index和item的重命名,在block中使用wx:for实现对多节点结构块的渲染

1502efed16c4c13a79de660f16da61ca.png

(2)代码

  1. index.wxml和index.wxss

    首先是style格式,上下左右边距为20像素,文本水平居中。

对于绑定数组渲染,进行了数据绑定,for的对象必须放在单引号或者双引号中,数组array来自js后缀文件中,渲染时,index代表下标,item是项。默认。循环显示array[0]到[3].

对于直接数组渲染,for的对象在{{}}中,中间直接写一个[]包括的数组,用index和item来显示下标和项目。

对象渲染,对象object在js后缀文件中定义,而index不是下标,而是对象的属性名,item是对象的属性值

字符串渲染和index和item重命名,默认时对于index是数组下标或者是对象属性值,item是数组元素和对象的属性值,渲染的对象是字符串,直接再{{}}中,把index用i表示,item用j表示。起到相同的作用。

渲染多节点结构块

渲染对象[1,2]渲染一和二是分别打出三色条,最后显示出两个三色条。

4802dad04fd7d901fec785550ec66905.png 555cb93a92529de2d328380aebc120bc.png 7f2ac0fc596ba3c77f52d00fbf78d5be.png

滑动查看更多图片

2.index.js

数据定义,数组和对象名定义。

432abeb1b45f9944c640231b1635609d.png

(3)总结

在组件上使wx:for控制属性绑定一个数组,既可以使用数组中的各项数据重复渲染该组件。

数组当前项的下标变量默认为index,数组当前项的变量名默认为item,使用wx:for-item和wx:for-index可以指定数组当前元素和元素下标。可以将wx:for用在标签上,以渲染一个包含多结点的结构块。

如果列表元素位置会动态改变或者有新的元素添加,并且希望列表中的项目保持自己的特征和状态,就需要使用wx:key来指定列表中元素的唯一标识符。

注意事项

wx:for的值wie字符串时,会解析为字符数组

花括号和引号之间如果有空格,将会最终被解析为字符串。

e65af025eff1a6942792053bdab15e5c.png 3c17cbb1f548dc34ec1f808f6008a05e.png

点击蓝字 ·  关注我们

球分享

球点赞

afe178930994051ef8f6c2aa8b0ef277.gif

球在看

如有错误,请指正,欢迎一起来来交流学习!!!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值