微信小程序自定义组件(超详细)

news2025/7/7 17:09:16

💌写在开头:
哈喽呀,亲爱的宝子们。
今天要介绍的是关于小程序自定义组件的相关内容。
主要分以下几个部分:组件的创建,组件的结构,组件的引用,组件样式,组件的生命周期等。

文章目录

    • 1.1 如何创建自定义组件
    • 1.2 自定义组件的使用(局部引入)
    • 1.3 自定义组件的引用方式
    • 1.4 自定义组件的样式(样式的隔离)
    • 1.5自定义组件的插槽
    • 1.6 自定义组件的生命周期
    • 1.7如何写自定义导航栏

1.1 如何创建自定义组件

(1)在项目根目录中,鼠标右键创建 components 文件夹
(2)右击components文件夹,创建item文件夹
(3)右击item文件夹,点击新建Component,输入item
(3)回车,自动生成四个小程序文件js json wxml wxss

在这里插入图片描述

注意:这里和vue有点类似,但是需要特别注意是新建Components,而不是新建page。为了保证目录结构的清晰,建议把不同的组件,放在components目录下不同文件夹中,例如我上图的三个自定义组件item ,cell.nav

1.2 自定义组件的使用(局部引入)

在页面xxx.json UsingComponent中注册,是以键值对的形式,前面的键就是我们创建的组件标签名,后面是url路径
在这里插入图片描述
在页面wxml中使用组件<item></item>
在这里插入图片描述

1.3 自定义组件的引用方式

组件的引用方式分为两种:局部引用与全局引用
(1)局部引用:组件只能在当前被引用的页面内使用,即在页面的.json配置文件中引用组件;如上图所示。在页面的.json配置文件中引入组件,在页面的.wxml文件中使用组件。
(2)全局引用:组件可以在每个小程序页面中使用,即在app.json全局配置文件中引用的组件

1.4 自定义组件的样式(样式的隔离)

  1. 样式的隔离styleIsolation
    (1)当值为isolated,则为开启样式隔离
    (2)若为apply-shared,父影响子,即页面的样式可以影响到组件,但是组件不能影响组件外的样式。
    (3)若为shared父子影响,为双向影响。
    在这里插入图片描述
  2. 外部类externalClasses:[“cell-class”],
	<view class="cell cell-class">我是cell组件</view>
	页面中
		<cell cell-class="mycell"></cell>
<cell></cell>
		.mycell{
  line-height: 120rpx !important;
  color:#F70;
}

1.5自定义组件的插槽

  1. 默认插槽
    父组件 <cell> <text>插槽内容</text> </cell>
    子组件 <view><slot></slot></view>
  2. 命名多插槽
    父组件 <cell> <text slot="pre"> 🚒</text> <text slot="next">🥗</text> </cell>
    子组件 options:{ multipleSlots:true} <view> <slot name="pre"></slot> <slot name="next"></slot> </view>
    在这里插入图片描述

1.6 自定义组件的生命周期

(1)组件的生命周期lifetimes
	created创建	此时还不能调用 setData
	attached挂载
	detached 卸载
(2)页面的生命周期 pageLifetimes
	show显示
	hide后台运行
	resize尺寸变化

1.7如何写自定义导航栏

 (1)wx.getMenuButtonBoundingClientRect()胶囊的边界		  
(2) wx.getSystemInfoSync();系统信息(状态栏的高度)
(3)配置自定义状态栏

在这里插入图片描述

  1. 在页面json中写入"navigationStyle": "custom"
{
  "usingComponents": {
    "nav":"/components/nav/nav"
  },
  "navigationStyle": "custom"
}
  1. 在组件的js里面设置即可

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/405710.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【蓝桥杯真题】当蓝桥杯开设Web组之后,对几题能拿省一?

目录 &#x1f3c6;难度分析 &#x1f3c6;一、水果拼盘 &#x1f3c6;二、展开你的扇子 &#x1f3c6;三、和手机相处的时光 &#x1f3c6;四、灯的颜色变化 &#x1f3c6;五、冬奥大抽奖 &#x1f3c6;六、蓝桥知识网 &#x1f3c6;七、布局切换 &#x1f3c6;八、购…

vue3,使用watch监听props中的数据

情况一&#xff1a;监听 props 中基本数据类型 父组件中对传入数据的处理 const handleClick () > {testStr.value P }子组件中监听传入的数据 watch(() > props.testStr,(newVal, oldVal) > {console.log(监听基本类型数据testStr)console.log(new, newVal)cons…

Vue 和 React 有什么不同?

大家好&#xff0c;我是前端西瓜哥。今天的文章简单探讨一下 Vue 和 React 的不同。 本人 Vue2 和 React 都用过&#xff0c;但不熟悉 Vue3&#xff0c;没用它做过项目。 其实我对这两大框架也没有认真钻研过它们的细节&#xff0c;也就是工作上用它们写一些简单业务&#xf…

解决npm ERR! Cannot read properties of null (reading ‘pickAlgorithm‘)报错问题

在vue项目中&#xff0c;使用npm i 命令安装node modules时&#xff0c;出现报错。 第一句&#xff1a; npm ERR! Cannot read properties of null (reading pickAlgorithm) 搜索的话也是有很多答案的&#xff0c;比如&#xff1a; 在终端中运行命令&#xff1a;npm cache cle…

Vue使用axios进行get请求拼接参数的几种方式

前言 本文主要介绍如何在Vue使用axios进行get请求拼接参数的两种方式 我们就以github上的一个开源接口举例&#xff1a; https://api.github.com/search/users?qxxx 这是github给开发人员提供的一个接口&#xff0c;是get请求。我们可以直接通过浏览器访问 很明显&#xff0…

ECharts 饼图颜色设置教程 - 4 种方式设置饼图颜色

本文首发&#xff1a;《ECharts 饼状图颜色设置教程 - 4 种方式设置饼图颜色》 ECharts 饼状图颜色设置教程 方法一&#xff1a;在 series 内配置饼状图颜色方法二&#xff1a;在 option 内配置饼状图颜色方法三&#xff1a;在 data 内配置饼状图颜色方法四&#xff1a;配置 E…

UE4 利用WEBUI插件完成UE与JS的交互 (UE4嵌入WEB)

目录 一、UE4显示Echart图表 二、UE调用JS&#xff08;修改Echart图表数据&#xff09; 三、JS调用UE&#xff08;UE4中打印js传递过来的数据&#xff09; 一、UE4显示Echart图表 步骤&#xff1a; 1.下载WEBUI插件 我的UE编辑器版本是4.24.3对应版本的插件下载地址是 链…

全站最简单 “数据滚动可视化大屏” 【JS基础拿来即用】

源码获取方式&#xff1a; 数据滚动大屏源码&#xff0c;原生js实现超级简单-Javascript文档类资源-CSDN下载原生js实现的数据滚动大屏案例&#xff0c;实现应该是全网最简单的&#xff0c;拿来直接使用即可&#xff0c;没有会员的小伙伴去我文章主更多下载资源、学习资料请访问…

聊一聊浏览器打印 - window.print

前言 一般信息填写类的需求页面&#xff0c;都会增设「预览」和「打印」功能。我们会通过编写 DOM 及样式来绘制出预览视图&#xff0c;而打印则是基于预览来生成 PDF 文件。 浏览器原生 API window.print() 可以用于打印当前窗口&#xff08;window.document&#xff09;视图…

CSS中animation动画-详解

1、animation有什么组成&#xff1f; Animations由两部分组成&#xff1a;css动画的配置&#xff0c;以及一系列的keyframes&#xff08;用来描述动画的开始、过程、结束状态&#xff09;。不需要了解任何Js技术即可完成动画的制作 2、关键帧应该怎么表示&#xff1f; 0%表示…

CSS的hover属性

1.hover的定义 :hover在鼠标移到链接上时添加的特殊样式 :hover适用于任何元素 2.hover的使用方法 用法1:控制自身的样式 鼠标悬浮在元素上改变元素样式,改变本身的背景颜色,例如: 用法2&#xff1a;通过hover控制其他块的样式 &#xff08;1&#xff09;控制子元素的样式…

【React Router 6 快速上手二】useParams / useSearchParams / useLocation / 编程式路由导航useNavigate等API

前言 博主主页&#x1f449;&#x1f3fb;蜡笔雏田学代码 专栏链接&#x1f449;&#x1f3fb;React专栏 之前学习了react-router-dom5版本的相关内容 参考文章&#x1f449;&#x1f3fb;React路由组件传参的三种方式和 【React路由】编程式路由导航 回顾上篇文章&#x1f449…

nvm管理node版本

nvm 使用 1. nvm介绍 nvm 全英文也叫 node.js version management&#xff0c;是一个 nodejs 的版本管理工具 nvm 和 npm 都是 node.js 版本管理工具&#xff0c;为了解决 node.js 各种版本存在不兼容现象可以通过它可以安装和切换不同版本的 node.js 2. 安装与配置 2-1 nv…

CSS绝对定位(absolute)、相对定位(relative)方法(详解)

CSS中几种常用的定位方法&#xff0c;直接上干货&#xff01; 什么是定位&#xff1f; 元素可以使用的顶部&#xff0c;底部&#xff0c;左侧和右侧属性定位。然而&#xff0c;这些属性无法工作&#xff0c;除非是先设定 position属性。他们也有不同的工作方式&#xff0c;这…

Echarts直角坐标系x轴y轴属性设置大全

1、Echarts版本 "echarts": "^5.3.3", 2、最简单的直角坐标系&#xff0c;以柱状图为例。 常见的直角坐标系&#xff0c;x轴设置type: category&#xff0c;为类目轴&#xff0c;适用于离散的类目数据&#xff1b;y轴设置type: value&#xff0c;为数值轴…

前端编程中你是如何进行调试代码的?这篇文章让你学会更多调试方法——前端新手进阶

要我讲就是&#xff1a;对自己代码自信的人&#xff0c;从来不需要调试&#xff0c;只是log一下值是否符合预期(doge)。 哈哈&#xff0c;这当然是一句玩笑话&#xff0c;不管你是刚刚起步的新手&#xff0c;还是从业多年的老手&#xff0c;编程中或多或少都会遇到一些瓶颈&…

Vue3中的watch监听

目录 一、监听基础ref类型 1、监听单个ref数据 2、 监听多个ref数据 二、监听reactive类型 1、监听对象中单个属性 2、监听对象中多个属性 3、同时监听ref基本类型数据和reactive对象中的属性 4、监听整个对象 5、监听对象中值为对象的属性 三、watchEffect 一、监听基础…

JS数组方法中哪些会改变原数组,哪些不会?

前言 作为一名前端开发人员&#xff0c;我们每天都会与数组打交道。JS 也提供了很多操作数组的原生 API 供我们调用。在这些方法里面&#xff0c;有的方法会改变原数组&#xff0c;有些不会改变原数组。别看这一点小小的区别&#xff0c;往往会造成巨大的影响&#xff0c;特别…

HTML常用标签超详细整理

HTML概述 1.1 什么是HTML HTML是做网站的、Web开发、互联网生态开发(PC端移动端微应用) 目前我们使用的都是HTML5,支持传统的PC端开发&#xff0c;还支持移动端开发还支持微应用开发,从而替换了部分传统的移动端开发技术 1.2 HTML概念 HTML:Hyper Text Markup Language&#…

小满Vue3第三十六章(Vue如何开发移动端)

视频教程Vue3 vite Ts pinia 实战 源码 全栈_哔哩哔哩_bilibili 如果使用npm init vuelatest 报错 error when starting dev server: Error: Cannot find module node:path nodejs 升级为16版本就好了 开发移动端最主要的就是适配各种手机&#xff0c;为此我研究了一套…