【微信小程序】初识微信小程序组件

news/2024/9/23 4:33:35/

在这里插入图片描述
作者简介:一名C站萌新,前来进行小程序的前进之路博主主页:大熊李子🐻

一、组件的创建与引用

1.1 创建组件

  1. 在项目的根目录中,鼠标右键,创建 components -> test 文件夹
  2. 在新建的 components -> test 文件夹上,鼠标右键,点击“ 新建 Component ”
  3. 键入组件的名称之后回车,会自动生成组件对应的 4 个文件,后缀名分别为 .js,.json, .wxml 和.wxss
    注意:为了保证目录结构的清晰, 建议把不同的组件,存放到单独目录中 ,例如:

1.2 引用组件

组件的引用方式分为“ 局部引用 ”和“ 全局引用” ,顾名思义:

局部引用:组件只能在当前被引用的页面内使用

全局引用:组件可以在每个小程序页面中使用

1.3 局部引用组件

在页面的 .json 配置文件中引用组件的方式,叫做“局部引用”。示例代码如下:

在页面 home.json文件中,引入组件

在页面的home.wxml文件中,使用组件

1.4 全局引用组件

在 app.json 全局配置文件中引用组件的方式,叫做“全局引用”。示例代码如下:

"usingComponents": {
"my-test1":"/components/test1/test1"
}
}
<view></view>
<my-test1></my-test1>
"pages":[
"pages/index/index",
"pages/logs/logs"]
"window":{
"backgroundTextStyle":"light",
"navigationBarBackgroundColor": "#fff",
"navigationBarTitleText": "Weixin",
"navigationBarTextStyle":"black"
},
"style": "v2",
"sitemapLocation": "sitemap.json",
"usingComponents": {
"my-test1":"/components/test1/test1"
}
1 <my-test1></my-test1>

1.5 全局引用 VS 局部引用

根据组件的 使用频率 和 范围 ,来选择合适的引用方式

如果某组件 在多个页面中经常被用到 ,建议进行“全局引用”

如果某组件只 在特定的页面中被用到 ,建议进行“局部引用”

1.6 组件和页面的区别

从表面来看,组件和页面都是由 .js、.json、.wxml 和 .wxss 这四个文件组成的。但是,组件和页面的

.js 与 .json 文件有明显的不同:

组件的 .json 文件中需要声明 " component": true 属性

组件的 .js 文件中调用的是 Component() 函数

组件的事件处理函数需要定义到 methods 节点中

二、样式

2.1 组件样式隔离

默认情况下,自定义组件的样式只对当前组件生效,不会影响到组件之外的 UI 结构,如图所示:

组件 A 的样式 不会影响 组件 C 的样式

组件 A 的样式 不会影响 小程序页面的样式

小程序页面的样式 不会影响 组件 A 和 C 的样式
优点:

  1. 防止外界的样式影响组件内部的样式

  2. 防止组件的样式破坏外界的样式

在app.wxss中定义样式

在home.wxml中加上此类名查看效果

2.2 组件样式隔离的注意点

app.wxss 中的全局样式对组件无效

只有 class 选择器会有样式隔离效果,id 选择器、属性选择器、标签选择器不受样式隔离的影响

建议:在 组件 和 引用组件 的页面中建议使用 class 选择器, 不要使用 id、属性、标签选择器!

2.3 修改组件的样式隔离选项

默认情况下,自定义组件的样式隔离特性能够防止组件内外样式互相干扰的问题。但有时,我们希望在

外界能够控制组件内部的样式,此时,可以通过 styleIsolation 修改组件的样式隔离选项,用法如下:

.g-red-text {
color:red;
}
text{
font-size: 25rpx;
}
1 <text class="g-red-text">pages/home/home.wxml</text>
// 在组件的 .js 文件中新增如下配置
// components/test/test.js
Component({
options:{
styleIsolation:"isolated"
}
})

isolated 是,表示启用样式隔离,在自定义组件内外,使用 class 指定的样式将不会相互影 响

apply-shared否,表示页面 wxss 样式将影响到自定义组件,但自定义组件 wxss 中指定的样式不会影响页面

shared 否,表示页面 wxss 样式将影响到自定义组件,自定义组件 wxss 中指定的样式也会影响页面和其他设置了 apply-shared 或 shared 的自定义组件


http://www.ppmy.cn/news/42999.html

相关文章

Flutter开发日常练习-黑白主题

1.添加了白天黑夜模式 2.country_picker: ^2.0.20 城市信息框架 3.image_picker: ^0.8.53 photo_manager: ^2.3.0 相机和相册的调用 4.shared_preferences: ^2.0.8 sqflite: ^1.3.1 path: 数据异步持久化到磁盘 注:登录的时候记录一下登录状态isLogin,通过isLogin来标记是否…

【CSS】定位 ① ( CSS 三大盒子布局方式 | CSS 定位简介 | 边偏移 | 定位模式 )

文章目录一、CSS 三大盒子布局方式二、CSS 定位简介1、边偏移2、定位模式一、CSS 三大盒子布局方式 CSS 三大盒子布局方式 : 普通流 : 又称为 标准流 , 盒子按照从上到下的顺序进行排列 ;浮动 : 另多个盒子水平排成一列 ;定位 : 将盒子定位在某个位置 ; 盒子自由漂浮在其它盒…

【vue3】关于watch与computed的用法看这个就ok

&#x1f609;博主&#xff1a;初映CY的前说(前端领域) ,&#x1f4d2;本文核心&#xff1a;watch()与computed的使用【vue2中watch|computed概念详解】&#xff0c;本文将介绍在vue3中怎么使用这两者技能 【前言】vue2当中有这两个技能&#xff0c;那么vue3中的watch与compute…

嵌入式学习笔记汇总

本文整理STM32、STM8和uCOS-III的所有文章链接。 STM32学习笔记目录 源码&#xff1a;mySTM32-learn STM32学习笔记&#xff08;1&#xff09;——LED和蜂鸣器 STM32学习笔记&#xff08;2&#xff09;——按键输入实验 STM32学习笔记&#xff08;3&#xff09;——时钟系统 …

SpringMVC基础解析

1.SpringMVC概念 是Spring的一个产品&#xff0c;是Spring的一个子项目&#xff0c;是为表述层开发提供了一套完备的解决方案 2.SpringMVC的优点 1.spring家族的原生产品&#xff0c;与IOC容器等基础设施无缝对接 2.基于原生的Servlet&#xff0c;通过了功能强大的前端控制…

Moviepy模块之视频去除声音、添加音乐

文章目录前言一、视频去除声音1.1 引入库1.2 加载视频文件1.3 去除视频声音1.4 保存无声视频二、视频添加音乐2.1 引入库2.2 加载视频文件2.3 加载音频文件2.4 裁剪多余音频2.5 将音频文件添加到视频中2.6 保存新的视频文件总结前言 大家好&#xff0c;我是空空star&#xff0c…

代码随想录算法训练营第41天| 343. 整数拆分,96.不同的二叉搜索树

代码随想录算法训练营第41天| 343. 整数拆分&#xff0c;96.不同的二叉搜索树343. 整数拆分96.不同的二叉搜索树343. 整数拆分 题目链接&#xff1a;343. 整数拆分&#xff0c;难度&#xff1a;中等 【实现代码】 class Solution { public:int integerBreak(int n) {vector&l…

Win10搭建我的世界Minecraft服务器「内网穿透远程联机」

文章目录1. Java环境搭建2.安装我的世界Minecraft服务3. 启动我的世界服务4.局域网测试连接我的世界服务器5. 安装cpolar内网穿透6. 创建隧道映射内网端口7. 测试公网远程联机8. 配置固定TCP端口地址8.1 保留一个固定tcp地址8.2 配置固定tcp地址9. 使用固定公网地址远程联机转载…