开始
–创建组件
创建组件文件夹components –>News–>新建Component
–分析组件结构
- wxml:存放组件结构
- wxss存放组件样式
- json:用来决定使用的组件
{
"usingComponents": {}
}
properties: {
},
data:{
},
methods: {
}
实现组件的使用
页面wxml
<view class="news">
<view class="news_title">
<view class="new_item {{item.isSel ? 'active' : ''}}" wx:for="{{titles}}" wx:key="{{item.id}}" data-id="{{item.id}}"
bindtap="handletitle">{{item.name}}</view>
</view>
<view class="news_context">新闻内容</view>
</view>
样式wxss
.news_title{
display: flex;
padding: 10rpx;
}
.new_item{
flex: 1;
display: flex;
justify-content: center;
}
.active{
color: greenyellow;
border-bottom: 5rpx red solid;
}
js
父向子传参–>properties中定义参名:类型
Component({
properties: {
titles:{
type:Array,
value:[]
}
},
data: {
},
methods: {
handletitle(e){
console.log(this.data.titles);
this.triggerEvent('itemChange',e.target.dataset.id);
}
}
})
需要用该组件的项目 wxml
使用参数名=值 传参
<News titles="{{titles}}" binditemChange="xgstate"></News>
js
Page({
data: {
titles:[
{id:1,name:'首页',isSel:true},
{id:2,name:'热点',isSel:false},
{id:3,name:'疫情分析',isSel:false},
{id:4,name:'新闻',isSel:false}
]
},
xgstate:function(id) {
let ok =this.data.titles.filter(item=>{
if(item.id==id.detail){
item.isSel=true;
}else{
item.isSel=false;
}
return item;
})
this.setData({
titles:ok
});
},
})
json
使用News 组件
{
"usingComponents": {
"News":"../../components/News/News"
}
}
效果图
成功实现自定义组件的使用,觉得文章对你有帮助就点个赞支持以下叭~
|