内置组件
image
图片标签
- 与web中
<img>的区别- 存在默认宽度和高度:320*240
- 通过mode属性控制渲染效果
- 裁剪模式 = 渲染模式
- 默认值
scaleToFill- 设置图片内容,不管原图宽高比例,直接拉伸
widthFix- 宽度不变,高度等比例变化,保持原图的宽高比例
- 设置的高度是无效的
aspectFit- 等比例缩放图片,直到图片的一段碰到边界就会停止
- 停止之后会居中显示 没有填充满会出现剩余两边的空白
- 类似于 web 中的 contain
aspectFill- 等比例缩放图片,直到图片完全填充满整个区域后才会停止
- 停止之后显示图片的中间段,会裁剪出来这部分
- 类似于 web 中的 cover
- 支持懒加载
特性
- 默认高度是150px
属性
indicator-dots- 指示器 小圆点
autoplay- 自动轮播
circular- 衔接轮播,不加就会从最后一个打倒序回去;
navigator
导航标签,块级元素 类似web中的a标签
通过 url 来指定要跳转的页面
- 跳转的页面是当前小程序的页面时,需要
open-type open-type = ""- 默认值
navigate- 保留当前页面,但是不能跳转到tabBar页面
redirect- 关闭当前页面跳转某个页面,但不能条转到tabBar页面
switchTab- 跳转到tabBar页面,并关闭其他所有非tabBar页面
- 默认值

<navigatorurl="../../pages/index2/index2"open-type="switchTab">tabbar页面</navigator><navigatorurl="../../pages/index3/index3">非tabbar页面</navigator>
- 跳转的页面是当前小程序的页面时,需要
跳转到其他小程序
target="miniProgram"跳转小程序需要添加该属性- 方式
app-id=""设置跳转小程序的AppIDshort-link=""设置短链接- 比较新 可能存在兼容性问题
<navigatortarget="miniProgram"app-id="wx011f13676f6a5380">跳转小程序</navigator><navigatortarget="miniProgram"short-link="#小程序://羽毛球高高手/MJbrgwddFBsTLmh">羽毛球</navigator>
- 比较新 可能存在兼容性问题
联系客服 button
nodes="{{html}}"属性
可以识别字符串中的标签
<rich-text nodes="{{title}}"></rich-text>data: {title: '<h1>大标题</h1><h2>标题2</h2>'},
自定义组件
自定义组件还具有简化页面结构、封装复用代码的功能 组件化开发时目前前端开的的主流方式
注册自定义组件流程
- 创建组件
- 创建下文件夹右键选择

注册组件
- 在需要使用的页面文件中的json文件注册
"组件名":"组件文件路径"{"usingComponents": {"border-image":"../../components/border-image/border-image"}}
使用组件
<border-image src="../../images/1.png"/>
Component({properties:{src:{// 数据类型type:String,// 默认值value:''}}})
<text>自定义组件</text><image src="{{src}}"></image>
子向父传参
- 子组件
- 小程序中组件的事件处理函数,必须放在
methods对象中 - 通过
this.properties.属性名访问到该属性的值 this.triggerEvent('自定义事件',传递的参数)
- 小程序中组件的事件处理函数,必须放在
- 父组件
- 自定义事件名前面需要添加
bind - 自定义事件的处理函数内 通过
e.detail获取到传递的值<text>自定义组件</text><image bindtap="handleTap" src="{{src}}"></image>
```jsxComponent({properties:{src:{// 数据类型type:String,// 默认值value:''}},// 组件的事件处理函数必须放在methods中methods: {handleTap() {// 获取到 src的值this.properties.src// console.log(this.properties.src);// 子传父this.triggerEvent('SrcChange',this.properties.src)}},})
- 自定义事件名前面需要添加
```jsxPage({/*** 页面的初始数据*/data: {title: '<h1>大标题</h1><h2>标题2</h2>',src:''},handleSrc(e) {// console.log(e);this.setData({src:e.detail})}})
