小程序-基础知识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后加:

js 复制代码
<view bindtap="cli">+</view>

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

事件冒泡和捕获

捕获:capture-bind:tap="cli"

组织事件进一步传播 capture-catch:

传参 的两种方式:

1.data-xx 自定义属性

  1. mark
js 复制代码
<view mark:age="111"   data-index="1">  </view>

组件化

通过新建Component建立组件

js文件

json文件

自定义组件也可以引用其他的组件,目录不能以wx-开头,在app.json中声明的可以直接在其他页面中使用

组件的样式

组件内的样式不会影响组件外的样式

组件内不能使用Id选择器、属性选择器、标签选择器。

Component对象中可以传入options,options有一个属性stylesolation可以让样式相互影响:

  • isolated
  • apply-shared
  • shared
js 复制代码
  Component({
   options:{
     styleIsolation:"shared"     
   }
  })

组件间的通信

向组件传递properties

父组件向子组件传递值,子组件通过properties来定义传递的值的类型和默认值

支持String,Number,Boolean,Object,Array等

可以通过value设置默认值

js 复制代码
<Test name="aaa" age="10"> </Test>

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

})

向组件传递外部样式 externalClasses

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

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

自定义事件

子组件通过triggerEvent来定义

js 复制代码
 onCli(){
  this.triggerEvent("triggerCli",{name:"aa"})
}

父组件 bind: xxxx

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

插槽

单个插槽

js 复制代码
<Test>
 <view>name</view>
</Test>
//在子组件中使用
<view>
  <slot></slot>
</view>

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

js 复制代码
<view class="content">
  <slot></slot>
</view>
<view class="default">

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

多个插槽

js 复制代码
  <Test>
    <view slot="left">left</view>
    <view slot="center">center<view>
  <Test>
  

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

js 复制代码
<view> 
  <slot name="left"></slot>
</view>
<view>
  <slot name="center"></slot>
</view>

behavier

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

在组件中使用 Behavior

js 复制代码
// 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 中的属性  
    }  
  }  
});

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

组件的生命周期

页面的生命周期

相关推荐
小羊Yveesss5 小时前
2026年知识付费小程序多少钱一个?
小程序
一只皮卡皮卡丘5 小时前
微信小程序tab页苹果显示安卓不显示的问题
微信小程序·小程序
六月的可乐5 小时前
【干货】小程序虚拟瀑布流探索小结
前端·react.js·小程序
前端 贾公子21 小时前
小程序蓝牙打印探索与实践(上)
小程序
拙慕JULY1 天前
小程序返回 base64 文件报错
开发语言·javascript·小程序
dh131222505251 天前
按月季度销售业绩核算小程序
小程序·销售小程序·绩效小程序·业绩统计小程序·业绩核算小程序
拙慕JULY1 天前
微信小程序自定义标题背景色
微信小程序·小程序
前端 贾公子1 天前
小程序蓝牙打印探索与实践(下)
小程序·apache
00后程序员张1 天前
Jenkins 自动上传 IPA 到 App Store 把发布步骤融入 CI/CD
android·ios·小程序·https·uni-app·iphone·webview
万岳科技系统开发1 天前
骑手配送系统如何支持外卖与跑腿一体化运营
大数据·前端·小程序