首页 > 编程语言 >小程序自定义组件 - 创建与引用

小程序自定义组件 - 创建与引用

时间:2023-04-08 19:56:36浏览次数:35  
标签:cj vue 自定义 引用 组件 页面

简单理解组件即 "页面的一部分". 组件化开发也更多是为了代码复用, 方便管理和提高开发效率. 前端的组件化开发我想大抵也是借鉴后端开发思想吧. 从前端的实现来看, 以 vue 为例即通过扩展自定义 HTML 标签的的形式, 让其局部拥有"单文件"的功能 (包括了模板, 样式, 逻辑). 然后组件之间通过数据通信, 即完成了整个页面的渲染这样的. 从小程序这块的组件化思想, 基本就是抄袭90%的vue + 10% 的 react 罢. 咱也不管, 从工具使用层面能用就行吧.

先来简单创建一个名为 cj 的小组件, 能被其他页面引用就行.

创建自定义组件

  • 在项目根目录中, 创建 components -> cj 文件夹
  • 在 cj 文件夹上右键, 点击 "新建 Component"
  • 回车后则会自动生成 4 个对应的文件, 即 cj.wxml, cj.wxss, cj.js, cj.js

Tips: 多个组件一定要放不同的文件夹哦, 不然就混乱的 (每个组件其实是4个文件)

自定义的 cj 组件的 .wxml中会自动默认生成一段内容如下:

<!--components/cj/cj.wxml-->
<text>components/cj/cj.wxml</text>

局部引用

组件的引用可分为局部引用和全局引用. 类似 vue 中注册全局组件和局部组件一个意思.

在需要的页面, 这里以 index 为例, 在其 .json 文件中添加如下代码就可引入啦. 这里引入的名字是可以随意取的, 满足规则即可.

{
  "usingComponents": {
    "cj": "/components/cj/cj"
  }
}

然后在 index 页面中就可以用 "cj" 这样的标签组件了.

<!--/pages/index/index.wxml-->
<view>
  下面的显示, 是引用的一个自定义组件: 
  <cj></cj>
</view>

则真机页面渲染的页面显示:

下面的显示, 是引用的一个自定义组件: 
components/cj/cj.wxml

个人感觉小程序这个改造的比 vue 还简单呀, 一下就秒懂了.

全局引用

在 app.json 中全局配置上的话, 就可在任何页面使用啦, 类似 vue 的 app.component({xxx})

"usingComponents": {
"cj":"/components/cj/cj"
}

这样任意一个页面都能用啦. 如果大多页面都需要用到这个组件, 设置为全局是合适的, 如果只是少数页面中使用, 那还是建议使用局部组件哦.

自定义组件和普通页面的区别

  • 组件的 .json 需要声明 "component": true属性
  • 组件的 .js 中调用的是 Component( ) 函数; 普通页面是 Page( ) 函数
  • 组件的事件处理函数需要定义到 methods 节点中, 而普通页面直接往 Page( ) 中编写

标签:cj,vue,自定义,引用,组件,页面
From: https://www.cnblogs.com/chenjieyouge/p/17299112.html

相关文章

  • 记录-VueJs中如何使用Teleport组件
    这里给大家分享我在网上总结出来的一些知识,希望对大家有所帮助了解排序算法的优缺点和适用场景是非常重要的,因为在实际开发中,需要根据实际情况选择最合适的排序算法。不同的排序算法适用于不同的场景,有的算法适用于小规模的数据集,有的算法适用于大规模的数据集,有的算法适用于......
  • Jmeter参数化的方式-用户参数、用户自定义变量、CSV文件设置、函数助手
    一、jmeter的主要功能参数化:事先准备好数据,脚本执行时从准备好的数据中取值;可将脚本中的某些输入使用参数来代替,在脚本运行时指定参数的取值范围和规则;在脚本运行时,根据需要选取不同的参数值作为输入,该方式成为数据驱动测试(DataDrivernTest,DDT),参数的取值范围称为数据池(Data......
  • .net core 自定义规范响应的中间件
    在本文中,我们将介绍如何使用.NETCore中的中间件来自定义规范响应,以便在API调用时返回统一的格式和错误信息。中间件是一种可以在请求和响应管道中执行逻辑的软件组件,它可以对请求或响应进行修改、拦截或处理。我们将使用一个简单的示例来演示如何创建和使用自定义规范响应的......
  • java中的引用
    引用分类强引用强引用是我们常见的普通对象引用,只有还有强引用指向一个对象,就表明这个对象还“存活”,垃圾收集器不会碰这个对象当一个对象被强引用对象引用时,它就处于可达状态,它是不能被垃圾回收的,即使出现了OOM也不会对该对象回收软引用软引用是相对于强引用......
  • 自定义线程池详解
    自定义线程池ThreadPoolExecutorexecutor=newThreadPoolExecutor(5,10,200,TimeUnit.MILLISECONDS, newArrayBlockingQueue<Runnable>(5));第一个参数:核心线程池大小,默认创建后就不会销毁,需要设置allowCoreThreadTimeOut为true时会销毁第二个参数:线程池最大大......
  • 内核实验(二):自定义一个迷你Linux ARM系统,基于Kernel v5.15.102, Busybox,Qemu
    原文:https://blog.csdn.net/yyzsyx/article/details/129576582文章目录一、篇头二、内核部分2.1源码下载2.1.1官网2.1.2镜像站点2.1.3代码下载2.2编译2.2.1设置工具链2.2.2配置2.2.3make2.2.4编译成功三、busybox部分3.1源码下载3.2编译3.2.1配置3.2.3编译3.2.4查......
  • Ioc自定义注册器
     相当于@ComponentScan  ......
  • 《渗透测试》安全开发-PHP应用&留言板功能&超全局变量&数据库操作&第三方插件引用 202
    PHPStorm:专业PHP开发IDEPhpStudy:ApacheMYSQL环境NavicatPremium:全能数据库管理工具 #数据导入-mysql架构&库表列1、数据库名,数据库表名,数据库列名2、数据库数据,格式类型,长度,键等 #数据库操作-mysqli函数&增删改查PHP函数:连接,选择,执行,结果,关闭等参考:https://......
  • 源码共读 | tdesign-vue 初始化组件
    前言Tdesign-vue是一由腾讯开源的Vue.js组件库。我们知道,这些大型的组件库业务覆盖面很广,基本都包含了很多组件,很多组件包含了一些通用性代码,如果每开发一个组件,都去把这些通用性代码复制出来,无疑是非常繁琐的,那么作者在开发这些组件时是如何做的呢?学习目标:新增组件:npmrun......
  • vue3学习第二课:组件和父组件的传递数据给子组件方式props
    1,在conponents目录中新建header.vue<template><div><h1>这是头部组件</h1></div></template>2,在App.vue中添加<template><div><Header></Header><Main></Main><Foote......