IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 移动开发 -> 微信小程序开发04(自定义组件) -> 正文阅读

[移动开发]微信小程序开发04(自定义组件)

开始

–创建组件

创建组件文件夹components–>News–>新建Component

在这里插入图片描述

–分析组件结构

  • wxml:存放组件结构
  • wxss存放组件样式
  • json:用来决定使用的组件
{
  "usingComponents": {}
}
  • js:
	/**
     * 组件的属性列表
     */
	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

/* components/News/News.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中定义参名:类型

// components/News/News.js
Component({
    /**
     * 组件的属性列表
     */
    properties: {
        titles:{
            type:Array,
            value:[]
        }
    },

    /**
     * 组件的初始数据
     */
    data: {
    },

    /**
     * 组件的方法列表
     */
    methods: {
        handletitle(e){
            console.log(this.data.titles);
            //子传父(参数传id)
            this.triggerEvent('itemChange',e.target.dataset.id);
            //下方代码只能修改自身data数据...
            /*
            let ok =this.data.titles.filter(item=>{
                if(item.id==e.target.dataset.id){
                    item.isSel=true;
                }else{
                    item.isSel=false;
                }
                return item;
            })
            
            this.setData({
                titles:ok
            });*/
        }
    }
})

需要用该组件的项目
wxml

使用参数名=值传参

<!--pages/day4/day4.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"
  }
}

效果图

在这里插入图片描述
成功实现自定义组件的使用,觉得文章对你有帮助就点个赞支持以下叭~

  移动开发 最新文章
Vue3装载axios和element-ui
android adb cmd
【xcode】Xcode常用快捷键与技巧
Android开发中的线程池使用
Java 和 Android 的 Base64
Android 测试文字编码格式
微信小程序支付
安卓权限记录
知乎之自动养号
【Android Jetpack】DataStore
上一篇文章      下一篇文章      查看所有文章
加:2022-04-04 12:22:54  更:2022-04-04 12:26:00 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 20:58:13-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码