微信小程序APP页面的之间的相互传递参数以及自定义组件


Posted in Javascript onApril 19, 2022

1. 自定义组件

小程序允许我们使用自定义组件的方式来构建页面。

官方文档

自定义组件

是不是用的微信的组件感觉很爽啊,如果不够用怎么办?

1.1 创建自定义组件

类似于页面,一个自定义组件由jsonwxmlwxssjs4个文件组成

1.1.1 声明组件

首先需要在json文件中进行自定义组件声明

{
  "component": true
}

微信小程序APP页面的之间的相互传递参数以及自定义组件

1.1.2 编辑组件

同时,还要在wxml文件中编写组件模板,在wxss文件中加入组件样式

注意:在组件wxss中不应使用ID选择器、属性选择器和标签名选择器。

<!--componentes/com/com.wxml-->
<view>我是组件</view>
<button>按钮组件{{num}}</button>

微信小程序APP页面的之间的相互传递参数以及自定义组件

1.2 使用自定义组件

首先要在页面的json文件中进行引用声明。还要提供对应的组件名和组件路径

注册-->使用

# json文件中注册
{
    // 引用声明
  "usingComponents": {
    // 要使用的组件的名称     // 组件的路径
    "com": "/componentes/com/com"
  }
}
# wxml文件中使用
<!--pages/test1/test1.wxml-->
<com></com>

微信小程序APP页面的之间的相互传递参数以及自定义组件

1.3 页面向自定义组件传递数据(父传子)

注意点:  

1.properties中:是写其他页面传过来的变量 

2.data中:本页面的变量,属性

# 组件wxml文件
<!--componentes/com/com.wxml-->
<!-- name值是由页面决定的 -->
<view>{{name}}大帅逼</view>  
# 组件js文件
// componentes/com/com.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    name:{
      type: String,	//属性的类型
      value: 'jeff'  // 属性的默认值,如果页面没有给这个name赋值,就使用这个value的值
    } 
  },
  /**
   * 组件的初始数据
   */
  data: {
  },
#页面中wxml
<my-con  title="{{变量名}}"><my-con/>
 #再组件中
   properties: {
    title:{
      type:String,
      value:"你好"
    }
  }
# 页面wsml文件
<com name='chary'></com>  //可以是固定值
<com name = "{{name1}}"></com> //这里的可以是变量

1.4 组件将事件传给页面(子传父)

组件的方法methods里面

# 组件wxml文件
<button bind:tap="click">加一</button>
# 组件js文件
methods: {
    click:function(e){
      this.triggerEvent("jia1")  // 传递jia1事件,不带参数的
      # this.triggerEvent("jia1",{num:e.currentTarget.dataset.num})  //带参数的
    }
  }
# 页面wxml文件 捕获事件
<view>{{num}}</view>
<com bind:jia1="jia"></com>
# 页面js文件
// pages/test1/test1.js
Page({
  data: {
    num:0
  },
  jia:function(e){
    this.setData({
      num: this.data.num + 1
  })
  }
})

以上就是微信小程序自定义组件与页面的相互传参的详细内容!

Javascript 相关文章推荐
jquery 应用代码 方便的排序功能
Feb 06 Javascript
基于JQuery的6个Tab选项卡插件
Sep 03 Javascript
JavaScript下通过的XMLHttpRequest发送请求的代码
Jun 28 Javascript
javascript权威指南 学习笔记之null和undefined
Sep 25 Javascript
javascript学习笔记(十七) 检测浏览器插件代码
Jun 20 Javascript
jquery应该如何来设置改变按钮input的onclick事件
Dec 10 Javascript
JS动态修改表格cellPadding和cellSpacing的方法
Mar 31 Javascript
深入学习Bootstrap表单
Dec 13 Javascript
vue中v-model动态生成的实例详解
Oct 27 Javascript
详解Vue SPA项目优化小记
Jul 03 Javascript
VUE 全局变量的几种实现方式
Aug 22 Javascript
Vue 子组件与数据传递问题及注意事项
Jul 11 Javascript
微信小程序APP的事件绑定以及传递参数时的冒泡和捕获
微信小程序APP的生命周期及页面的生命周期
解决vue中provide inject的响应式监听
Apr 19 #Vue.js
vue3种table表格选项个数的控制方法
Apr 14 #Vue.js
vue项目配置sass及引入外部scss文件
Apr 14 #Vue.js
解决vue-router的beforeRouteUpdate不能触发
Apr 14 #Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 14 #Vue.js
You might like
利用PHP动态生成VRML网页
2006/10/09 PHP
如何在smarty中增加类似foreach的功能自动加载数据
2013/06/26 PHP
用PHP代替JS玩转DOM的思路及示例代码
2014/06/15 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
php递归遍历删除文件的方法
2015/04/17 PHP
浅谈laravel-admin的sortable和orderby使用问题
2019/10/03 PHP
fireworks菜单生成器mm_menu.js在 IE 7.0 显示问题的解决方法
2009/10/20 Javascript
ajax页面无刷新 IE下遭遇Ajax缓存导致数据不更新的问题
2012/12/11 Javascript
打开新窗口关闭当前页面不弹出关闭提示js代码
2013/03/18 Javascript
Js 时间函数getYear()的使用问题探讨
2013/04/01 Javascript
JS操作数据库的实例代码
2013/10/17 Javascript
js获取客户端外网ip的简单实例
2013/11/21 Javascript
JavaScript获取当前网页标题(title)的方法
2015/04/03 Javascript
JavaScript中Cookies的相关使用教程
2015/06/04 Javascript
详解AngularJS中的表达式使用
2015/06/16 Javascript
分享自己用JS做的扫雷小游戏
2016/02/17 Javascript
微信小程序 二维码canvas绘制实例详解
2017/01/06 Javascript
基于vue.js快速搭建图书管理平台
2017/10/29 Javascript
js+canvas实现滑动拼图验证码功能
2018/03/26 Javascript
关于微信小程序bug记录与解决方法
2018/08/15 Javascript
你或许不知道的一些npm实用技巧
2019/07/04 Javascript
js canvas实现5张图片合成一张图片
2019/07/15 Javascript
JavaScript Array对象基本方法详解
2019/09/03 Javascript
[45:32]Liquid vs LGD 2018国际邀请赛淘汰赛BO3 第二场 8.23
2018/08/24 DOTA
Python的re模块正则表达式操作
2016/05/25 Python
python调用外部程序的实操步骤
2019/03/04 Python
python numpy存取文件的方式
2020/04/01 Python
python解析xml文件方式(解析、更新、写入)
2020/03/05 Python
魔幻般冒泡背景的CSS3按钮动画
2016/02/27 HTML / CSS
关于css中margin的值和垂直外边距重叠问题
2020/10/27 HTML / CSS
HTML5 实现图片上传预处理功能
2020/02/06 HTML / CSS
小学生教师节演讲稿
2014/09/03 职场文书
作文评语集锦
2014/12/25 职场文书
公安纪律作风整顿心得体会
2016/01/23 职场文书
Python使用scapy模块发包收包
2021/05/07 Python
Ajax异步刷新功能及简单案例
2021/11/20 Javascript