小程序常用组件

小程序常用组件

  • 1.组件的定义
  • 2.常用组件
  • 3.引入外部字体图标库
  • 4.组件样式
  • 5.示例代码

1.组件的定义

组件就是指微信定义的具有特殊功能的标签,在wxml中只能使用微信定义的标签。

2.常用组件

  <view>:用于页面布局的块级组件,类似于html中的div标签,默认不具有任何样式,独占一行<text>:用于页面布局的行级组件,类似于html中的span,默认不具有任何样式,不会独占一行<scroll-view>:可滚动的块级组件<swiper>:实现轮播的块级组件,其中只能放置swiper-item组件,否则会出现未定义的异常<icon>:图标<rich-text>:富文本<表单组件>:表单<navigator>:导航,类似于html中的标签<a><image>:图片<map>:地图

3.引入外部字体图标库

  • 登录 iconfont-阿里巴巴矢量图标库:https://www.iconfont.cn
  • 找到需要的图标加入购物车 -> 添加至项目(无项目自己创建)-> 选择 Font-class -> 查看在线链接 -> 点击链接可以查看到代码
    在这里插入图片描述
  • 复制代码,并在小程序中创建一个 wcss文件,将代码粘贴至文件中
  • 直接引用里面的图标

4.组件样式

WXSS(WeiXin Style Sheets)是微信定义的一套样式语言,用于描述WXML的组件样式,具有CSS大部份特性,同时对CSS进行了扩充的修改。
相同特性如:选择器与CSS相同,都有以下几种:

  • 标签选择器:view{}
  • 类选择器:.myView{}
  • id选择器:#id{}
  • 行级样式:在组件内属性直接写style属性
  • 外部样式

扩展特性主要有以下两点:

  • 尺寸单位:新增了rpx单位,能自适应不同分辨率的手机,px是传统意义上的像素值,不能很好的适应不同分辨率的手机。
  • 样式导入:@import “外部样式文件”

全局样式与局部样式:定义在app.wxss中的样式为全局样式,作用于每一个页面。在页面的wxss文件中定义的样式为局部样式,仅作用于当前页面。全局样式与局部样式冲突时使用局部样式。

5.示例代码

WXML示例代码:

<!-- 两对大括号{{}}称为插值表达式,用来进行数据的展示 -->
<!-- <text style="height:2000rpx;display:block;background:#ccc">{{ msg }}</text> -->
<!--view和text
-->
<view class="hi" id="world" style="text-decoration:underline">块级标签</view>aaa
ccc
<text user-select="true">行级标签</text>bbb<!-- wxss的扩展 -->
<view class="myView">wxss扩展特征</view><!-- scroll-view1.必须要设置固定的高度或宽度2.内部元素必须超出高度或宽度3.必须定义滚动方向
-->
<scroll-view scroll-y="true" bindscrolltoupper="scrolltoupper" bindscrolltolower="scrolltolower"><view>view1</view><view>view2</view><view>view3</view>
</scroll-view><!--swiper 只可放置swiper-item组件
-->
<swiper autoplay="true" indicator-dots="true" indicator-color="#fff"><swiper-item>view1</swiper-item><swiper-item>view2</swiper-item><swiper-item>view3</swiper-item>
</swiper><!--icon 显示内置图标
-->
<view class="myicon"><icon type="success" size="40" color="red"></icon><icon type="info"></icon><icon type="download"></icon><!--  引入外部的字体图标库 --><text class="iconfont icon-cart"></text><text class="iconfont icon-cart1"></text>
</view><!--rich-text 展示富文本代码
-->
<view class="myrichtext"><rich-text nodes="<h2 style='text-align:center;color:blue;'>abcd</h2>"></rich-text><rich-text nodes="{{ content }}"></rich-text>
</view><!--表单组件
-->
<form class="myfrom" bindsubmit="duSUbmit"><input name="username" placeholder="用户名称"></input><input name="pwd" password></input><radio-group name="sex" bindchange="chgSex"><radio checked="true" value="man"></radio><radio value="gril"></radio></radio-group><checkbox-group name="like" bindchange="chglike"><checkbox value="ps">爬山</checkbox><checkbox value="yy">游泳</checkbox><checkbox value="dlq">打蓝球</checkbox></checkbox-group><view><picker mode="date" value="{{ date }}" bindchange="binddatechg">选择日期</picker><text> {{date}} </text><picker mode="region" bindchange="bindRegion">选择地址:{{ region }}</picker><picker mode="selector" range="{{ countrys }}" bindchange="bindCountry">选择国家:{{ countrys[index] }}</picker></view><view><switch checked="true" name="open" bindchange="bindOpen"></switch></view><view><button form-type="submit" size="mini" type="primary">提交</button><button type="primary" bindtap="doButton" size="mini">普通按钮</button></view>
</form><!--导航组件1.默认只能跳转到非tabBar页面2.如果要跳转到tabBar页面,需要指定open-type为switchTab
-->
<navigator url="/pages/logs/logs">跳转到logs</navigator>
<navigator url="/pages/index/index" open-type="switchTab">跳转到index</navigator>
<!--  重定向时,当前页面会被卸载 -->
<navigator url="/pages/logs/logs" open-type="redirect">重定向到logs</navigator><!--image1.自带宽度和高度,默认width:320px,height:240px
-->
<view class="myimage"><image src="/images/我的1.png"></image><image src="https://p1.itc.cn/q_70/images03/20240101/5d01d5da227a4a2c90c1662146af625b.jpeg"></image><image src="/images/我的1.png" mode="scaleToFill"></image><image src="/images/我的1.png" mode="aspectFit"></image><image src="/images/我的1.png" mode="aspectFill"></image><image src="/images/我的1.png" mode="widthFix"></image><image src="/images/我的1.png" mode="heightFix"></image><image src="/images/我的1.png" mode="top"></image><image src="/images/我的1.png" mode="top right"></image><image src="/images/我的1.png" mode="top left"></image>
</view><!--map
-->
<map longitude="118" latitude="32"></map>

WXSS示例代码:

.myView,scroll-view,swiper,.myicon,.myrichtext,myfrom,navigator,myimage {margin-bottom: 30rpx;
}/*wxss中选择器与css相同标签选择器、类选择器、id选择器、行级样式、外部样式等
*/
view {color:red
}
.hi {background: #ccc;
}
#world {font-weight: bold;
}
/*wxss特征1.尺寸单位2.样式导入3.全局样式与局部样式4.不能指定本地图片,无法加载本地资源
*/
.myView {font-size: 40rpx;height: 400rpx;background: #ccc;background-image: url(https://bkimg.cdn.bcebos.com/pic/cefc1e178a82b9014a90e40fabc7be773912b31b41fe);background-size: 100%;
}
@import "../../styles/common.wxss";text {color: blue;
}scroll-view {height: 300rpx;border: 1px solid #f00;
}
scroll-view view {height: 200rpx;background: white;border: 1px solid white;
}swiper {height: 200rpx;color: white;
}
swiper swiper-item:first-child {background-color: red;
}
swiper swiper-item:nth-child(2) {background-color: blue;
}
swiper swiper-item:last-child {background-color: green;
}/* 引入图标字体库 */
@import "../../styles/iconfont.wxss";
.myicon text {font-size: 60rpx;color: green;
}.myfrom input {background-color: #ccc;height: 50rpx;width: 400rpx;border: 1px solid #f00;margin: 0 auto;
}.myimage image {width:150px;height:150px;border: 1px solid #f00;margin-right: 3px;
}

JS示例代码:

//获取小程序App实例
const app = getApp();
console.log(app);
console.log(app.user.name);
app.show();Page({// 页面初始数据,称为数据仓库datadata:{msg:'hello',arr:[1,2,3,4],user:{id:1001,name:'dog'},content:'<div><img src="../../images/我的1.png"></img></div>',date:'2000-09-01',countrys:['中国','日本','美国','英国']},/*** 生命周期回调函数-监听页面加载* 1.该函数只执行一次* 2.已加载的页面会被缓存,不会重复加载,提高性能*/onLoad:function(options){ // 参数options中包含了跳转到当前页面时,所携带的参数信息console.log('关于页面加载......',options)},/*** 生命周期回调函数-监听页面初次渲染完成* 该函数只执行一次*/onReady:function(){console.log('关于页面初次渲染完成.....')},/*** 生命周期回调函数-监听页面显示* 该函数可以多次执行,第一次执行时早于onReady*/onShow:function(){console.log('关于页面显示......')},/*** 生命周期回调函数-监听页面隐藏* 该函数可以多次执行*/onHide:function(){console.log('关于页面隐藏......')},/*** 生命周期回调函数-监听页面卸载*/onUnload:function(){console.log('关于页面卸载......')},/*** 监听用户下拉刷新事件*/onPullDownRefresh:function(){console.log('关于页面执行下拉刷新......')},/*** 监听用户上拉触底事件*/onReachBottom:function(){console.log('关于页面上拉触底事件发生......')},/*** 监听用户点击右上脚的转发* 只有监听了该事件后,点击右上脚的转发才能分享* 转发的标题、显示的图片和转发的具体页面都可以指定*/onShareAppMessage:function(options){console.log('关于页面执行了转发......',options);return {title:'分享标题',path:'/pages/about/about',imageUrl:'../../images/主页2.png'}},/*** 监听当前页面对应的tab点击操作*/onTabItemTap:function(item){console.log('关于页面的tab被点击了......',item)// this代表当前页面实例console.log(this);// 获取自定义的数据和方法console.log(this.user.name);this.show();// 获取数据仓库data中的数据console.log(this.data.msg);// 修改数据仓库data中的数据,使用this.data的方式修改是不会重新渲染页面的,即页面不会同步更新,会造成数据不一致// 应使用 this.setData 修改就会同步渲染页面,使数据同步,// this.data.msg = '您好'this.setData({msg:'您好', // 如果已存在,则修改info:'信息' // 如果不存在,则新增});},/*** 其他:自定义的变量和函数*/user:{name:'leo',sex:'男'},show(){console.log('执行了关于页面的show方法......')},scrolltoupper(e){ // 事件对象console.log('滚动到顶部',e);},scrolltolower(e){console.log('滚动到底部',e)},chgSex(e){console.log(e.detail.value) // 获取选中radio的值},chglike(e){console.log(e.detail.value) // 获取选中checkbox值},binddatechg(e){this.setData({date:e.detail.value})},bindRegion(e){this.setData({region:e.detail.value})},bindCountry(e){this.setData({index:e.detail.value})},bindOpen(e){console.log(e.detail.value)},duSUbmit(e){console.log(e.detail.value)},doButton(e){console.log('单击普通按钮')}
})

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/696687.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基础ArkTS组件:帧动画,内置动画组件,跑马灯组件(HarmonyOS学习第三课【3.6】)

帧动画 帧动画也叫序列帧动画&#xff0c;其原理就是在时间轴的每帧上逐帧绘制不同的内容&#xff0c;使其连续播放而成动画。ArkUI开发框架提供了 ImageAnimator 组件实现帧动画能力&#xff0c;本节笔者介绍一下 ImageAnimator 组件的简单使用。 官方文献 说明 该组件从A…

基于springboot+vue+Mysql的音乐翻唱与分享平台

开发语言&#xff1a;Java框架&#xff1a;springbootJDK版本&#xff1a;JDK1.8服务器&#xff1a;tomcat7数据库&#xff1a;mysql 5.7&#xff08;一定要5.7版本&#xff09;数据库工具&#xff1a;Navicat11开发软件&#xff1a;eclipse/myeclipse/ideaMaven包&#xff1a;…

如何用时尚新姿讲好中国品牌故事?

品牌建设在推动高质量发展中扮演了双重角色&#xff0c;既是高质量发展的重要“承载者”&#xff0c;也是强有力的“助推器”。5月10日-11日&#xff0c;中国时尚品牌URBAN REVIVO&#xff08;以下简称UR&#xff09;以中国品牌日为起点&#xff0c;联合天猫超级品牌日&#xf…

python内置函数exec()和eval()区别

在Python中&#xff0c;eval() 和 exec() 都是内置函数&#xff0c;用于执行存储在字符串或对象中的Python代码&#xff0c;但它们之间也有一些区别。 eval() 语法&#xff1a;eval(expression, globalsNone, localsNone) expression&#xff1a;需要求值的字符串表达式。可…

ohmyzsh的安装过程中失败拒绝连接问题的解决

1.打开官网Oh My Zsh - a delightful & open source framework for Zsh 在官网能看到下面的界面 有这两种自动安装的方式 个人本次选择的是: wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O - 1.打开终端输入安装的指令 sh -c "$(wget…

【C++】继承与多态的一些练习题

学习完了继承与多态&#xff0c;当然要来点练习题啦~ 第一题&#xff1a; class Base1 { public: int _b1; }; class Base2 { public: int _b2; }; class Derive : public Base1, public Base2 { public: int _d; }; int main(){ Derive d; Base1* p1 &d; Base2* p2…

基于SpringBoot + Vue的学生宿舍课管理系统设计与实现+毕业论文(15000字)+开题报告

系统介绍 本系统包含管理员、宿管员、学生三个角色。 管理员&#xff1a;管理宿管员、管理学生、修改密码、维护个人信息。 宿管员&#xff1a;管理公寓资产、管理缴费信息、管理公共场所清理信息、管理日常事务信息、审核学生床位安排信息。 学生&#xff1a;查看公共场所清理…

SSH 免密登录,设置好仍然需要密码登录解决方法

说明&#xff1a; ssh秘钥登录设置好了&#xff0c;但是登录的时候依然需要提供密码 查看系统安全日志&#xff0c;定位问题 sudo cat /var/log/auth.log或者 sudo cat /var/log/secure找到下面的信息 Authentication refused: bad ownership or modes...&#xff08;网上的…

外卖系统微信小程序支付

微信小程序支付时序图 其中第9.步骤就是微信小程序前端调用wx.requestPayment

Vue3实战Easy云盘(三):文件删除+文件移动+目录导航+上传优化/文件过滤/搜索

一、文件删除 &#xff08;1&#xff09;选中了之后才可以删除&#xff0c;没有选中时就显示暗调删除按钮 &#xff08;2&#xff09;实现选中高亮功能 &#xff08;3&#xff09;单个删除 &#xff08;4&#xff09;批量删除 Main.vue中 <!-- 按钮3 --><!-- 如果sel…

交易复盘-20240513

仅用于记录当天的市场情况,用于统计交易策略的适用情况,以便程序回测 短线核心:不参与任何级别的调整,采用龙空龙模式 一支股票 10%的时候可以操作, 90%的时间适合空仓等待 双成药业 (1)|[9:30]|[3566万]|0.34 中通客车 (1)|[9:43]|[7678万]|0.15 嘉华股份 (2)|[9:30]|[36…

AI跟踪报道第41期-新加坡内哥谈技术-本周AI新闻:本周Al新闻: 准备好了吗?事情即将変得瘋狂

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…