微信小程序一

本文介绍了如何在小程序中使用JavaScript从数据驱动WXML页面,展示了如何使用for循环渲染列表,以及flex布局的用法和关键属性如flex-direction、justify-content和align-items的设置。还提到了wx:key的重要性,以及如何配合数据变动优化组件渲染效率。
摘要由CSDN通过智能技术生成

{{item}}/{{index}}

从JS中获取到的值,去WXML中渲染出来

JS部分

Page({

data: {

books: [

‘三国演义’,

‘水浒传’,

‘西游记’,

‘红楼梦’

]

},

/**

  • 生命周期函数–监听页面加载

*/

onLoad: function (options) {

},

})

WXML部分,可以修改for循环的标签名称——item和index

block可以同时渲染多个标签

{{item}}/{{index}}

{{abc}}/{{idx}}

{{item}}

{{index}}


实战:九九乘法表


WXML

{{row}} * {{col}} = {{row*col}}

WCSS

.row{

display: flex;

justify-content: flex-start;

font-size: 17rpx;

}

.row .col{

width: 100rpx;

}

在大容器row里面定义的格式,被包含在内的col也会跟着排版

注意,设为Flex布局以后,子元素的float、clear和vertical-align属性将失效。

flex-direction:

  • row(默认值):主轴为水平方向,起点在左端。

  • row-reverse:主轴为水平方向,起点在右端。

  • column:主轴为垂直方向,起点在上沿。

  • column-reverse:主轴为垂直方向,起点在下沿。

flex-wrap:

  • nowrap(默认):不换行。

  • wrap:换行,第一行在上方。

  • wrap-reverse:换行,第一行在下方。

justify-content:

  • flex-start(默认值):左对齐

  • flex-end:右对齐

  • center: 居中

  • space-between:两端对齐,项目之间的间隔都相等。

  • space-around:每个项目两侧的间隔相等。所以,项目之间的间隔比项目与边框的间隔大一倍。

align-items:

  • flex-start:交叉轴的起点对齐。

  • flex-end:交叉轴的终点对齐。

  • center:交叉轴的中点对齐。

  • baseline: 项目的第一行文字的基线对齐。

  • stretch(默认值):如果项目未设置高度或设为auto,将占满整个容器的高度。

wx:key

JS部分

Page({

data: {

// lines: [

// {

// “id”: 1,

// “name”: “switch1”

// },

// {

// “id”: 2,

// “name”: “switch2”

// },

// {

// “id”: 3,

// “name”: “switch3”

// },

// {

// “id”: 4,

// “name”: “switch4”

// }

// ]

lines: [1,2,3,4,5]

},

tapevent: function(event){

var lines = this.data.lines;

// lines.splice(0,0,{

// id: 5,

// name: “switch5”

// });

lines.splice(0,0,6);

this.setData({

lines: lines

})

},

/**

  • 生命周期函数–监听页面加载

*/

onLoad: function (options) {

},

})

WXML部分

{{item.name}}

更新

{{item}}

更新

如果JS部分有属性的话,key后面就可以通过属性来进行锁定;如果没有属性,类似列表:则通过 *this 来进行锁定

wx:key 的值以两种形式提供:

1、字符串或者数字,代表在for循环的array中item的某个property,该property的值需要是列表中唯一的字符串或数字,且不能动态改变。在写的时候,直接写这个property的名字就可以了,不需要写 item.property 的形式,并且不需要加中括号。

2、保留关键字 *this 代表在for循环中的 item 本身,这种表示需要 item 本身是一个唯一的字符串或者数字,如:当数据改变触发渲染层重新渲染的时候,会校正带有key的组件,框架会确保他们被重新排序,而不是重新创建,以确保使组件保持自身的状态,并且提高列表渲染时的效率。

3、即使列表中的组件没有发生状态改变,那么也建议使用 wx:key 。因为如果不使用,那么以后重新渲染的时候,就会把之前组件销毁掉,然后重新创建,性能会很低。

如不提供 wx:key ,会报一个 warning ,如果明确知道该列表是静态,或者不必关注其顺序,可以选择忽略。


include

include 可以将目标文件除了 外的整个代码引入,相当于是拷贝到 include 位置


参数传递

JS部分

Page({

/**

  • 页面的初始数据

*/

data: {

articles: [

{

‘id’: 1,

‘title’: ‘钢铁是怎样炼成的’

},

{

‘id’: 2,

‘title’: ‘互联网风口推动者的生意’

}

]

},

/*

view被点击事件

*/

onViewClick: function(event){

console.log(“hello”)

},

/**

  • 文章被点击事件

*/

onArticleClick: function(event){

// 获取event里面的数据

var dataset = event.currentTarget.dataset;

console.log(dataset)

// console.log(event)

},

/**

  • 生命周期函数–监听页面加载

*/

onLoad: function (options) {

},

})

WXML部分

请点击我

{{item.title}}

WCSS部分

.article-group{

font-size: 14px;

height: 40px;

padding: 10px;

line-height: 40px;

border-bottom: 1px solid #e4e4e4;

}


flex布局:


flex布局是继标准流布局、浮动布局、定位布局后的第四种布局方式。这种方式可以非常优雅的实现子元素居中或均匀分布,,甚至可以随着窗口缩放自动适应。flex布局在浏览器中存在一定的兼容性。但在小程序中,是完全兼容flex布局的,并且微信官方也是推荐使用flex布局的。

WXML部分:

1

2

WXSS部分:

.outter{

display: flex;

justify-content: space-between;

background: pink;

width: 300px;

height: 300px;

}

.inner{

width: 100px;

height: 100px;

background: gray;

border: 1px solid #e4e4e4;

box-sizing: border-box;/将设置的边框所占的px隐藏在长宽内/

}


转载于:https://www.jianshu.com/p/e4f371d6dc5e

flex布局一共有6个属性:

  • flex-direction

  • flex-wrap

  • flex-flow

  • justify-content

  • align-items

  • align-content

1)flex-direction:很好理解就是定义容器中所有组件的排列方向,排列方向的话有4种row(从左到右), row-reverse(从右到左), column(从上到下), column-reverse(从下到上),但常用的基本就是row和column这两种了,其它两种逆向排序目前没发现能用在什么样的布局上。默认值为row。

2)flex-wrap:定义了容器内组件在一条轴线排不下,如何换行。换行方式有3种 nowrap(不换行), wrap(换行), wrap-reverse(逆向换行),默认值为nowrap,当然我们常用的也是前两种,第三种逆向换行,我也是没想到这种诡异的换行方式能用在哪种布局上。

3)flex-flow:flex-flow属性是flex-direction属性和flex-wrap属性的简写形式,默认值为row nowrap,笔者个人还是喜欢将两者分开定义。

4)justify-content: 定义了项目在主轴上的对齐方式,这也是flex比原先的h5布局要强的地方,原先的h5布局要实现各种对齐还是比较麻烦的。

  • flex-start(默认值):左对齐;项目靠近父盒子的左侧

  • flex-end:右对齐;项目靠近父盒子的右侧

  • center: 居中;所有项目会挨在一起在父盒子的中间位置

  • space-between:两端对齐,项目之间的间隔都相等;项目沿主轴均匀分布,位于首尾两端的子容器与父容器紧紧挨着。

  • space-around:每个项目两侧的间隔相等;项目沿主轴均匀分布,位于首尾两端的子容器到父容器的距离是子容器间距的一半。

  • space-evenly:项目在主轴上均匀分布,首尾两端的子容器到父容器的距离跟子容器间的间距是一样的。

5)align-items:定义项目在交叉轴上如何对齐。

  • flex-start:交叉轴的起点对齐;起始端对齐

  • flex-end:交叉轴的终点对齐;末尾端对齐
    自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。

深知大多数Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《2024年Java开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。img

既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Java开发知识点,真正体系化!

由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!

如果你觉得这些内容对你有帮助,可以扫码获取!!(备注Java获取)

img

难道这样就够了吗?不,远远不够!

提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。

备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记

我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。

今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

阿里一面就落马,恶补完这份“阿里面试宝典”后,上岸蚂蚁金服

image.png

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!
!(备注Java获取)**

img

难道这样就够了吗?不,远远不够!

提前多熟悉阿里往年的面试题肯定是对面试有很大的帮助的,但是作为技术性职业,手里有实打实的技术才是你面对面试官最有用的利器,这是从内在散发出来的自信。

备战阿里时我花的最多的时间就是在学习技术上,占了我所有学习计划中的百分之70,这是一些我学习期间觉得还是很不错的一些学习笔记

我为什么要写这篇文章呢,其实我觉得学习是不能停下脚步的,在网络上和大家一起分享,一起讨论,不单单可以遇到更多一样的人,还可以扩大自己的眼界,学习到更多的技术,我还会在csdn、博客、掘金等网站上分享技术,这也是一种学习的方法。

今天就分享到这里了,谢谢大家的关注,以后会分享更多的干货给大家!

[外链图片转存中…(img-ALYfdfZ3-1713681078199)]

[外链图片转存中…(img-527UGhnR-1713681078200)]

[外链图片转存中…(img-XpP3Pjeo-1713681078200)]

《互联网大厂面试真题解析、进阶开发核心学习笔记、全套讲解视频、实战项目源码讲义》点击传送门即可获取!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值