小程序开发(二)---自定义组件,组件引用外部样式及插槽(slot) - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 小程序相关 >

小程序开发(二)---自定义组件,组件引用外部样式及插槽(slot)

发表时间:2020-9-24

发布人:葵宇科技

浏览次数:64

自定义组件

在小程序的components(组件)文件夹下新建一个文件夹,当然命名根据组件的功能,类型…来定义是最好的。

这里选择新建的component,直接输入你要创建的组件名称就可以,不需要后缀,创建完成后会自动生成相关文件的。
在.wxml文件中布局你要创建的组件
在这里插入图片描述

<view class="modal" hidden="{{!modalShow}}">
  <view class="panel">
    <i class="iconfont icon-quxiao" bind:tap="onClose"></i>
    <!-- slot插槽 -->
    <slot name="modal_content"></slot>
  </view>
</view>

在.wxss文件中写入组件所要用到的css样式
在这里插入图片描述

.modal{
  position: fixed;
  top:0;
  bottom: 0;
  left:0;
  right: 0;
  z-index: 999;
  text-align: center;
  background: rgba(0, 0, 0,0.6);
}
.panel{
  position: absolute;
  bottom: 0rpx;
  left: 0;
  width: 100%;
  min-height: 300rpx;
  box-sizing: border-box;
  background-color: #f8f8f8;
}
.modal .icon-quxiao{
  position: absolute;
  right: 10rpx;
  top:10rpx;
  padding-left: 20rpx;
}

在.js文件写组件的功能,及组件和页面交互所要传递参数等逻辑代码
在这里插入图片描述

如果你定义的这个属性有默认值的话,这样写就可以了

 properties: {
    modalShow:{
      type:Boolean,
      value:true
    }
  }

因为Boolean类型默认值为fals,所以上面代码中就简写了。

组件外部样式引用及插槽(slot)

  options:{
    styleIsolation:'apply-shared',
    multipleSlots:true
  },

在小程序开发中:默认情况下,自定义组件的样式只受到自定义组件 wxss 的影响。
styleIsolation:‘apply-shared’:简单来说就是,组件内部的wxss样式不会影响到你调用这个组件的页面,而这个页面的样式会影响到组件。(每个页面都是是可以引用到全局app.wxss这个样式类的,所以只要claas名字一样就可以影响到组件了。)
当然styleIsolation还有其他属性,详情查看小程序开发文档https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/wxml-wxss.html#%E7%BB%84%E4%BB%B6%E6%A0%B7%E5%BC%8F%E9%9A%94%E7%A6%BB

这里组件中用到了外部引入的iconfont图标,小程序如何引入iconfont图标请查看
https://blog.csdn.net/weixin_37624974/article/details/108770431

在小程序开发中:默认情况下,一个组件的 wxml 中只能有一个 slot 。需要使用多 slot 时,可以在组件 js 中声明启用.
multipleSlots:true ( 启用多slot支持)

如果启用了多slot支持,组件不管定义了几个插槽 slot 都必须有name属性,如果不启用,就不要写name属性,不然slot插槽就不会生效

组件调用

在这里插入图片描述
1,在.json文件中引入组件
在这里插入图片描述
2,.wxml
在这里插入图片描述

<view>
    <w-modal-pop  modalShow="{{modalShow}}">
     <view slot="modal_content">
        <button size="default" class="lgin" open-type="getUserInfo" bindgetuserinfo="onGetUserInfo">获取用户授权信息</button>
      </view>
    </w-modal-pop>
</view>

3,.wxss
在这里插入图片描述

.lgin {
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 32rpx;
  height: 80rpx;
  background-color: #d43c33;
  color: #fff;
  margin: 110rpx;
}

4,.js在这里插入图片描述
效果:
在这里插入图片描述

相关案例查看更多