微信小程序之组件复用

最近又开始写微信小程序了。前段时间的微信小程序是用美团的框架mpvue写的。原因也很简单,同事们对vue的语法更熟悉一点,不需要重新了解小程序的语法。并且mpvue可以使用store管理全局状态,这正好是小程序所没有的。不过这次使用了微信小程序的原生语言,所以要用小程序的方式去解决一些问题

自定义顶部导航栏

写了几天小程序后,小程序已经有了一个基本的雏形。现在遇到了一个问题,就是,我需要一个自定义的顶部导航。之前用mpvue的时候也使用过自定义导航栏,但是基本上都是同事弄得,我直接捡了现成的,没有看怎么用。其次,自定义顶部导航应该也会涉及到组件复用,这刚好又是我的一个知识盲区。真的太兴奋了,一下子白捡两个知识点。
下面先来说一些自定义顶部导航栏吧:

使用自定义导航栏需要在 app.json 中做相关配置,配置也很简单:
app.json 是对小程序的整体规范做配置的文件。window字段则是对全局的默认窗口表现的一些设置。
navigationStyle 属性设置为 custom。navigationStyle
设置导航栏样式,仅支持两个值,default 和custom。

{
   
	"window":{
   
	    "navigationStyle": "custom"
	  },
}

设置navigationStyle为custom后,页面将去掉导航栏的位置。
在这里插入图片描述

自定义组件

到这里为止,自定义导航的设置已经做完了。下面我们开始自定义组件。
说到这里,小伙伴们可能已经蒙圈了,文章标题是要做组件复用,怎么现在扯到了自定义导航和自定义组件了呢。原因很简单,我们想要自定义导航,导航几乎在每个页面都会使用,所以肯定不能每个页面都写一遍,就需要将导航单独提出来当做一个组件,根据具体情况再不同的页面引用。所以这里面就包括了三个知识点:自定义组件自定义导航组件复用

废话不多说,下面是自定义组件的方法:

pages目录同级,新建 components文件夹。因为后期可能会有很多个公共组件,所以我将导航组件的内容放到了nav文件夹下,下面是我的目录结构:
在这里插入图片描述
与page相同,.wxml是组件布局, .wxss是组件样式, .js是组件逻辑, .json用来声明当前文件是组件。

nav.json 声明这是一个组件:

{ "component": true }

nav.js 组件的逻辑部分

这里和vue定义组件的方式很像。
js文件最外层是 Component构造器,内部包含三部分内容: properties, 接受组件外部传入的参数 ;data, 组件内部自己使用的数据; methods ,定义组件内部的方法。

Component({
   
  // 接受外部传入的参数
  properties: {
   
    pageTitle: {
   
      type: String
    },
    navH:
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
微信小程序是一种基于微信平台的应用程序,它可以在微信中直接运行,无需下载安装。而自定义组件小程序中的一种重要功能,它允许开发者将一些常用的UI元素封装成组件,以便在不同的页面中复用。 自定义组件具有以下特点: 1. 组件是由wxml、wxss和js文件组成,可以独立定义样式和逻辑。 2. 组件可以接受外部传入的数据,通过属性进行配置。 3. 组件可以触发事件,向外部传递消息。 4. 组件可以包含子组件,形成组件的嵌套结构。 使用自定义组件的步骤如下: 1. 在小程序项目中创建一个新的文件夹,用于存放自定义组件的相关文件。 2. 在该文件夹中创建一个wxml文件,定义组件的结构。 3. 在同一文件夹中创建一个wxss文件,定义组件的样式。 4. 在同一文件夹中创建一个js文件,定义组件的逻辑。 5. 在需要使用该组件的页面中引入组件,并在wxml中使用组件标签。 例如,我们创建一个名为"custom-component"的自定义组件,其文件结构如下: ``` custom-component/ ├── custom-component.wxml ├── custom-component.wxss └── custom-component.js ``` 在custom-component.wxml中定义组件的结构,例如: ```html <view class="custom-component"> <text>{{text}}</text> <button bindtap="handleClick">点击按钮</button> </view> ``` 在custom-component.wxss中定义组件的样式,例如: ```css .custom-component { background-color: #f5f5f5; padding: 10px; } ``` 在custom-component.js中定义组件的逻辑,例如: ```javascript Component({ properties: { text: { type: String, value: '默认文本' } }, methods: { handleClick() { this.triggerEvent('click', { message: '按钮被点击了' }); } } }) ``` 在需要使用该组件的页面中引入组件,并在wxml中使用组件标签,例如: ```html <custom-component text="Hello World" bind:click="handleCustomComponentClick"></custom-component> ``` 以上就是微信小程序自定义组件的简单介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值