微信小程序 基础 - 16 (自定义组件Component)

news/2024/7/20 4:00:41 标签: 微信小程序, 小程序

如何自定义组件?

        1.新建Component. 与Page类似,包含四件套.

        2.在.json中编写组件声明:

{
  "component": true
}

        3.编写组件基础的wxml / wxss

        4.在普通页面中,引入该组件,使用该组件.

{
  "usingComponents": {
    "mybutton": "path/to/the/custom/component"
  }
}
<mybutton></mybutton>

如何自定义组件的属性?

        1.在组件的js中声明属性:

// components/mybutton/mybutton.js
Component({
    /** 声明组件的属性列表 */
    properties: {
        round: {
            type: Boolean,
            value: false
        },
        color: {
            type: String,
            value: '#36D'
        },
        value: {
            type: String, 
            value: '默认按钮'
        }
    }
})

        2.在组件的wxml中使用属性:

<!--components/mybutton/mybutton.wxml-->
<view class="mbutton  {{round?'round':'rect'}}"
    style="background-color: {{color}};">
    {{value}}
</view>

        3.在使用组件时, 为组件指定属性:

<my-button value="去往购物车"  color="#f42211" round>
</my-button>

如何自定义组件的事件?

        1.在组件的js中定义触发事件的条件:

// components/mybutton/mybutton.js
Component({
    /**
     * 组件的初始数据
     */
    data: {
        lastTime : 0   // 记录上次单击时的时间毫秒值
    },
    /** 组件的方法列表 */
    methods: {
        tapEvent(){
            // 捕获到单击事件 判断距离上次单击多长时间
            let now = new Date().getTime() // 毫秒
            if(now - this.data.lastTime<350){
                // 触发了双击场景 触发父组件定义的doubletap
                this.triggerEvent('doubletap')
                now = 0
            }
            this.data.lastTime = now // 重写lastTime时间
        }
    }
})

        当达到了事件触发条件, 调用this.triggerEvent('doubletap')触发事件.

        2.在父组件中, 绑定自定义事件doubletap:

<my-button    bind:doubletap="doubleTapEvent"></my-button>


http://www.niftyadmin.cn/n/508697.html

相关文章

微信小程序 基础 - 17 (vant组件库的使用)

安装vant组件库 步骤一 通过 npm 安装 进入项目根目录&#xff0c; 执行以下命令&#xff0c;初始化npm&#xff0c; 安装vant&#xff1a; cd xxxx #进入文件夹目录 cloudnpm init # 一路回车 初始化npm 将会生成package.json npm i vant/weapp -S --production #…

微信小程序 基础 - 18 (微信登录业务:登录、注册)

微信登录 1、点击 "登录" 文本, 调用微信开放的API接口&#xff0c;获取当前用户的微信公开信息&#xff1a;昵称/头像等. 2、更新界面. 注意: 虽然wx.getUserProfile方法可以获取用户微信的基本信息用户显示, 但是一个完整的登录业务还远远没有写完. 因为不仅需要…

微信小程序 基础 - 19 (登录后用户头像的更新)

上传更新头像的业务流程&#xff1a; 1.客户端点击头像选择头像图片 wx.chooseImage() 2.将头像图片上传到服务器, 并且获取访问该头像图片的网络路径. 3.将该网络路径, 与当前用户绑定在一起存入数据库 4.在下次登录时, 获取到最新的头像路径, 就可以看到新头像了 云开发-云存…

HTML5 新特性 - WebStorage 数据存储

webstorage提供了localStorage与sessionStorage用于在客户端持久化存储键值对数据. localStorage提供了一个独立的数据存储区域&#xff0c;这部分数据将会永久存储在客户端本地. sessionStorage提供了一个独立的数据存储区域&#xff0c;这部分数据只会在当前会话中生效.(浏…

HTML5 新特性 - audio、video 音频与视频标签

音频与视频 HTML5提供了音频与视频相关的新标准(标签)可以使浏览器支持音视频播放. 音频标签 浏览器支持的音频格式: mp3 wav ogg . 简写方式&#xff1a; <audio src"音频文件路径" controls></audio> 标准方式&#xff1a; <audio controls&…

HTML5 新特性 - <audio> <video> 标签的DOM操作

<audio id"audio"></audio> <script>let audio document.getElementById(audio)audio.play() </script> 与媒体相关的DOM对象 包含&#xff1a; HTMLAudioElement 描述音频DOM对象 HTMLVideoElement 描述视频DOM对象 HTMLMediaElement 它…

HTML5 新特性 - 全屏API

html5提供了可以让任何HTML元素及其子元素占满整个屏幕的API&#xff1a; dom对象.requestFullscreen() 退出全屏&#xff1a; document.exitFullscreen()

HTML5 新特性 - Canvas基础图形图像的绘制

什么是canvas? canvas(画布) 是可以使用Javascript来绘制图形的html元素. 基本的语法结构&#xff1a; <canvas id"" width"宽度像素个数" height"高度像素个数"> </canvas> canvas的应用场景 网页特效. 网页游戏. 数据可视化图…