微信小程序:组件、样式隔离、数据方法属性

组件

组件定义在 components 文件夹下。

  • 会在组件目录下的 .json 中设置 component: true ,表示当前是组件。

    {
        "component": true,
        "usingComponents": {}
    }
    

组件注册

// 语法格式
{
    "usingComponents": {
        "组件名": "组件路径"
    }
}

全局组件

app.json 中全局配置组件。

{
    "usingComponents": {
        "my-test2": "/components/test2/test2"
    }
}

局部组件(推荐)

在页面的 .json 中局部引入组件。

{
    "usingComponents": {
        "my-test2": "/components/test2/test2"
    }
}

组件使用

.wxml 中直接使用组件。

<!-- 在组件内容直接使用 -->
<my-test2></my-test2>

自定义组件样式

样式隔离

styleIsolation 可选值说明
isolation默认值,表示启用样式隔离,在自定义组件内外,使用 class 指定的样式将不会相互影响。
app-shared表示页面 wxss 样式将影响到自定义组件,但自定义组件 wxss 中指定的样式不会影响页面。
shared表示页面 wxss 样式将影响到自定义组件,自定义组件 wxss 中指定的样式也会影响页面和其他设置了 apply-shared 或 shared 的自定义组件。
// components/test/test.js
Component({
    options: {
        styleIsolation: "shared"
    },
})

数据、方法和属性

data 存放数据,methods 存放方法,properties 是组件的对外属性,用来接收外部传递到组件的数据。

// components/test/test.js
Component({
    // 组件的属性列表
    properties: {
        // 写法一:只设置类型,没有默认值
		count: Number,
        // 写法二:设置默认值
        title: {
            type: String,
            value: '列表'
        }
    },

    // 组件的初始数据
    data: {
		num: 1
    },

    // 组件的方法列表
    methods: {
		say() {
            console.log('说话')
        }
    }
})

<!-- properties 传递参数 -->
<my-test2 :count="{{1}}" :title='商品列表'></my-test2>

properties 和 data 的区别

properties属性 和 data 数据的用法一样,两者打印的值都相同。

  • properties:更倾向于存储外部传递到组件中的数据;
  • data:更倾向于存储组件的私有数据;

数据监听器

observers 监听和响应任何属性和数据字段的变化,从而执行特定的操作。

// components/test/test.js
Component({
    
    observers: {
        '字段A, 字段2': function(字段A的新值, 字段B的新值) {
            ...
        }
    }
    
})
  • 多个属性使用 ... 来代替,使用 obj. 的形式来调用。

    // components/test/test.js
    Component({
        
        observers: {
            '字段A, ...': function(字段A的新值, obj.b的新值, obj.c的新值) {
                ...
            }
        }
        
    })
    
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

孤安先生

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值