美文网首页
小程序封装toastx组件

小程序封装toastx组件

作者: _conquer_ | 来源:发表于2018-03-05 14:45 被阅读0次

自定义我把它分为简单的三个步骤, 1.创建组件 --- 2.编写组件 --- 3.调用,使用组件.

1.1 创建组件

首先创建一个components文件夹,然后在该文件夹中创建一个toastx文件夹,里面包含 json.wxml.wcss.js 四个文件,然后在json里面添加 "component":true (作用是声明这一组文件为自定义组件)

2.1 编写组件代码

在toastx.wxml 中

<view hidden='{{ !toastText }}'>
   <view style="transition: opacity .5s;z-index: 1000;text-align: center;width: 100%;top:30%;position: fixed;padding:0;line-height: 2;opacity:{{ opacity }}">
    <text style="max-width:80%;background: rgba(0, 0, 0, 0.6);color: rgb(255, 255, 255);border-radius: 5px;display: inline-block;padding: 20rpx;font-size:30rpx">{{ toastText }}</text>
  </view> 
</view>

在toastx.js中

Component({
  properties:{
    toastText:{
      type:String,
      value:'',
      observer:function(n_v,o_v){//observer 表示属性值被更改时的响应函数
        if(n_v){
          var that = this;
          setTimeout(function(){
            that.setData({
              opacity: 1
            });
          },10);
          setTimeout(function(){
            that.setData({
              opacity:0,
            });
            setTimeout(function () {
              that.setData({
                toastText: ''
              });
            },500);
          },1500);
          
        }
      }
    }
  },
  data:{
    opacity:0
  }

});

3.1

使用组件,我是在 pages/index/index 页面调用 pages/modal/modal 自定义组件 首先在index.json中进行引用说明, 这里是设置自定义组件的标签名和引用路径

{
  "usingComponents": {
    "toastx": "/components/toast/toast"
  }
}

然后在index.wxml调用组件

<toastx toastText="{{toast_msg}}"></toastx>

在index.js绑定数据,

Page({  
  data: {  
    toast_msg: '',
  }  
})

补充知识

自定义组件触发事件时,需要使用 triggerEvent 方法,指定事件名、detail对象和事件选项:

<!-- 当自定义组件触发“myevent”事件时,调用“onMyEvent”方法 -->
<component-tag-name bind:myevent="onMyEvent" />
<!-- 在自定义组件中 -->
<button bindtap="myevent">点击这个按钮将触发“myevent”事件</button>
//js部分
Component({
  properties: {}
  methods: {
    onTap: function(){
      var myEventDetail = {} // detail对象,提供给事件监听函数
      var myEventOption = {} // 触发事件的选项
      this.triggerEvent('myevent', myEventDetail, myEventOption)
    }
  }
})

相关文章

网友评论

      本文标题:小程序封装toastx组件

      本文链接:https://www.haomeiwen.com/subject/julhfftx.html