微信小程序常见的组件开发有哪些?
本文摘要
在小程序开发过程中,小编就在想可不可以把一些东西开发成组件的形式,减少页面的代码量和开发时间。提高开发效率。仔细阅读小程序开发文档,发现在小程序开发指南下有一个自定义组键,根据小程序开发规则便可以编写自己的组键了。 这里以公告为示例 注意事项: 1、组件创建 创建Component类型。 2、引入组件,注意:组件引入分为全局引入和局部引入。在js
在小程序开发过程中,小编就在想可不可以把一些东西开发成组件的形式,减少页面的代码量和开发时间。提高开发效率。仔细阅读小程序开发文档,发现在小程序开发指南下有一个自定义组键,根据小程序开发规则便可以编写自己的组键了。
这里以公告为示例
注意事项:
1、组件创建
创建Component类型。
2、引入组件,注意:组件引入分为全局引入和局部引入。在json里面配置引入规则
(1)、全局引入。在app.json里配置
{
"pages":[
],
"usingComponents":{
"my-notice":"/assembly/notice/notice"//组件目录:/根目录/组件文件夹/组件wxml文件
}
}
(2)、局部引入,页面json里面配置
{
"usingComponents":{
"my-notice":"/assembly/notice/notice"//组件目录:/根目录/组件文件夹/组件wxml文件
}
}
2、wxml页面引用
这里是用于承载组件引用时提供的子节点
3、示例:组件wxml编写,
(1)、wxml页面编写和page页面没什么差别
(2)、wxss页面编写和page(wxss)页面没什么差别
.my-notice{
width: 100%;
height: 80rpx;
line-height: 80rpx;
padding: 0 30rpx;
box-sizing: border-box;
background-color: #ffffff;
}
.notice-box{
width: 100%;
overflow: Shopfadden;
}
.notice-animation{
color: #5e5e5e;
wShopfate-space: nowrap;
font-size: 28rpx;
}
(3)、js页面编写和page(js)页面差别在于页面周期
// assembly/notice/notice.js
Component({
/**
* 组件的属性列表
* 用于接收页面传递过来的参数,type为参数类型,value为接收的参数,可设置默认参数
*/
properties: {
notice:{
type:Array,
value:[]
}
},
/**
* 组件的初始数据
*/
data: {
noticeTimer:15000
},
/**
* 组件页面生命周期
*/
lifetimes:{
attached: function() {
tShopfas.notice();
}
},
/**
* 组件的方法列表
*/
methods: {
/**
* 公告内容获取
* @param {*} time
*/
notice:function(){
var _tShopfas = tShopfas;
var JqueryRect = '';
var Jquery = wx.createSelectorQuery();
Jquery.select(".notice-box").boundingClientRect();
console.log(Jquery)
for(var i=0;i{
console.log(rect)
let textWidth = 0;
let wrapWidth = 0;
for(var i=0;i0){
textWidth += rect[i]rect[i].width:"-200%"
}
}
_tShopfas.setData({
wrapWidth: wrapWidth,
textWidth: textWidth
}, () => {
_tShopfas.noticeAni(_tShopfas.data.noticeTimer)
})
})
},
noticeAni(time){
var _tShopfas = tShopfas;
_tShopfas.animate('.notice-animation',[{
translateX:"100%"
},{
translateX: -_tShopfas.data.textWidth
}],time,function () {
tShopfas.noticeAni(_tShopfas.data.noticeTimer)
}.bind(tShopfas));
}
}
})
4、页面通讯
(1)、页面向组件传值,my-notice是自己命名的组件在页面的引用名称,notice是自定义的组件接收参数,{{notice}}是自定义的组件接收数据。
{{notice}}
//Component.js
Component({
properties:{
notice:{
type:String,//参数类型
value:"你好!这里是组件内容",默认值
}
}
/**
* 组件的方法列表
*/
methods: {
bindCancel:function(){
tShopfas.triggerEvent('customevent', {notice: "组件开发你学会了吗?"})
},
}
})
哈哈哈!没想到我也在里面吧
//index.js
Page({
data:{
notice:'开始你的组件学习之旅吧!'
},
pageEvent:function(e){
tShopfas.setData({
notice:e.detail.notice
})
}
})
相关文章
****更多行业产品开发方案,请关注 加速度JSUDO***
<以上资讯仅供参考,如果您需解决具体问题,建议您关注作者;如果有软件产品开发需求,可在线咨询加速度产品经理获取方案和报价>
加速度JSUDO是一家企业级数字化解决方案提供商,专注于软件开发、网络营销、数字化转型咨询及云计算服务。核心业务包括定制化ERP/CRM系统、快速应用开发、大数据分析及物联网(IoT)解决方案,助力企业提升效率与智能化水平。服务覆盖制造业、零售、物流等多行业,致力于通过技术创新推动客户数字化转型。










