当前位置: 首页 > article >正文

小程序-基础知识1

Mustache语法

小程序和vue一样提供了插值语法

在这里插入图片描述

但是小程序不能调用方法{{xxxx()}}

hidden属性

hidden是所有组件都默认拥有的属性,
hidden与wx:if的区别:
wx:if是控制组件是否渲染,hidden控制显示或隐藏是通过添加hidden属性。
在这里插入图片描述

wx:for

除了可以遍历数组还可以遍历字符串和数字

可以遍历字符串
在这里插入图片描述
也可以遍历数字

在这里插入图片描述

block是一个包装元素,类似与vue的template,不会渲染到页面上,可以定义item和index的名字
在这里插入图片描述

wxs

与js基本一致,它不依赖与运行的基础版本库,可以运行在所有版本的小程序。在wxs中不能调用其他js中的函数,也不能调用小程序提供的api

  • wxs可以写在<wxs>标签中,也可以写在.wxs结尾的文件中。

  • wxs标签的属性 :
    – module 当前标签的模块名
    – src 应用.wxs文件的路径

  • 每一个.wxs或<wxs>文件都是一个单独的模块,模块中的变量和函数都是私有的,要想到处只能通过module.exports

  • <wxs>标签形式
    在这里插入图片描述

  • .wxs形式

.wxs文件
在这里插入图片描述
引入.wxs文件
在这里插入图片描述

事件监听

以bind或catch开头如bindtap=“cli”,1.5.0后可以在bind或catch后加:

<view bindtap="cli">+</view>

cli(e){
 console.log(e.target) //事件触发对象
 console.log(e.currentTarget) //事件处理对象
}

在这里插入图片描述

事件冒泡和捕获

捕获:capture-bind:tap=“cli”
组织事件进一步传播 capture-catch:
在这里插入图片描述

传参 的两种方式:
1.data-xx 自定义属性
2. mark

<view mark:age="111"   data-index="1">  </view>

组件化

通过新建Component建立组件
在这里插入图片描述

js文件
在这里插入图片描述
json文件
在这里插入图片描述
自定义组件也可以引用其他的组件,目录不能以wx-开头,在app.json中声明的可以直接在其他页面中使用

在这里插入图片描述

组件的样式

组件内的样式不会影响组件外的样式
组件内不能使用Id选择器、属性选择器、标签选择器。
Component对象中可以传入options,options有一个属性stylesolation可以让样式相互影响:

  • isolated
  • apply-shared
  • shared
  Component({
   options:{
     styleIsolation:"shared"     
   }
  })

组件间的通信

在这里插入图片描述

向组件传递properties

父组件向子组件传递值,子组件通过properties来定义传递的值的类型和默认值
支持String,Number,Boolean,Object,Array等
可以通过value设置默认值

<Test name="aaa" age="10"> </Test>

Component({
  properties:{
     name:{
       type:String
       value:"nnn"
     },
     age:{
       type:Number,
       value:10
     } 
  }

})

向组件传递外部样式 externalClasses

如果希望组件的样式有外部决定可以使用 externalClasses

 //外部的css
 .test{
  color:red
 }
 //  作为属性传递给子组件
<Test  color="test"></Test>
//子组件
Component({
  options:{},
   externalClasses:['test']
})
<view class="test"></view>

自定义事件

子组件通过triggerEvent来定义

 onCli(){
  this.triggerEvent("triggerCli",{name:"aa"})
}

父组件 bind: xxxx

//子组件为test
 <Test bind:triggerCli="cli"> </Test>
cli(e){
 console.log(e)
}

插槽

单个插槽

<Test>
 <view>name</view>
</Test>
//在子组件中使用
<view>
  <slot></slot>
</view>

小程序的默认情况下不支持默认值,需要自己设置

<view class="content">
  <slot></slot>
</view>
<view class="default">

</view>
//在content为空时,设置default为block
.default{
 display:none
}
.content:empty + .default{
   display:block
}

多个插槽

  <Test>
    <view slot="left">left</view>
    <view slot="center">center<view>
  <Test>
  

使用多个插槽时要在options中把multipleSlots设为true

在这里插入图片描述

<view> 
  <slot name="left"></slot>
</view>
<view>
  <slot name="center"></slot>
</view>

behavier

// customBehavior.js  
module.exports = Behavior({  
  properties: {  
    property1: {  
      type: String,  
      value: 'default value'  
    }  
  },  
  data: {  
    data1: 'data value'  
  },  
  methods: {  
    method1() {  
      console.log('This is method1');  
    }  
  }  
});

在组件中使用 Behavior

// myComponent.js  ,import
const customBehavior = require('./customBehavior.js');  

Component({  
  behaviors: [customBehavior],  
  
  properties: {  
    componentProperty: {  
      type: String,  
      value: 'component default value'  
    }  
  },  
  
  methods: {  
    callMethod() {  
      this.method1(); // 调用来自 Behavior 的方法  
      console.log(this.property1); // 使用 Behavior 中的属性  
    }  
  }  
});

组件的生命周期和页面的生命周期

组件的生命周期
在这里插入图片描述
页面的生命周期
在这里插入图片描述


http://www.kler.cn/news/325273.html

相关文章:

  • 【muduo源码分析】「阻塞」「非阻塞」「同步」「异步」
  • BeautifulSoup4在爬虫中的使用
  • 以旅游购物贸易方式报关出口的货物是什么意思
  • 招联金融内推-2025校招
  • Python_itertools
  • Wireshark_流量分析
  • Go基础学习05-数组和切片关系深度解析
  • 主数据管理的误区有哪些?
  • 数据结构:二叉树的遍历和线索二叉树
  • 创建数据/采集数据+从PI数据到PC+实时UI+To PLC
  • 基于Vue3组件封装的技巧分享
  • 基于PHP+MySQL组合开发地方门户分类信息网站源码系统 带完整的安装代码包以及搭建部署教程
  • 【数据结构-栈】力扣1441. 用栈操作构建数组
  • Linux防火墙-nat表
  • 828华为云征文 | 使用 Memtester 对华为云 X 实例进行内存性能测试
  • 深入探讨AI 神经网络:类型、特点与创新应用
  • AGI interior designer丨OPENAIGC开发者大赛高校组AI创作力奖
  • C++【类和对象】(取地址运算符重载与实现Date类)
  • 无人机之物流货运篇
  • PDCA优化任务流程
  • OpenCV图像文件读写(2) 检查 OpenCV 是否支持某种图像格式的写入功能函数haveImageWriter()的使用
  • 画个心,写个花!Python Turtle库带你玩转创意绘图!
  • bluefs _flush_range allocated: osd用空间但是显示ceph_bluefs_db_used_bytes is 100%
  • 【国庆要来了】基于Leaflet的旅游路线WebGIS可视化实践
  • 240924-通过服务器代理ip地址及port端口wget等下载文件
  • 如何判断IP有没有被污染过
  • 产品管理 - 互联网产品(3) : 迭代管理
  • 小米笔记本电脑笔记
  • es7.13.2请求体过大
  • java8:处理数据stream并传值