微信小程序五

微信小程序复习笔记 组件化

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
不想把内容写死也是可以的 如下 通过mustach语法把它定义成为一个变量
在这里插入图片描述
在这里插入图片描述
想在哪个页面中用一下这个组件分为2个步骤
如想在home页面中用它 就在home.json中
对它做一个注册
在这里插入图片描述在这里插入图片描述
这个路径可以写相对路径 也可以写成绝对路径
在这里插入图片描述
然后就可以在wxml中使用组件

在这里插入图片描述在这里插入图片描述
在这里插入图片描述
上面这个东西千万不能随便删掉

37使用自定义组件化注意事项

在这里插入图片描述
在这里插入图片描述
上面创建的组件一样可以去之前的my-cpn组件中引用
先注册
在这里插入图片描述
再使用
在这里插入图片描述
如果十个页面都需要用到cpn组件
就很麻烦 小程序提供一种注册组件的方法 直接在app.json注册
在这里插入图片描述
一旦在全局的json文件对某个组件做了注册的话 那意味着就可以在所有地方使用这个东西而没有必要用一次注册一次
如下删掉也无影响 注意在JSON文件中注释的话会报错
但是最好只有在多个页面中用到的组件才在这里面注册
只有某一个应用的话在单独的页面注册就好了

在这里插入图片描述在这里插入图片描述

38组件和页面样式细节在这里插入图片描述在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
my-style里面的样式会不会对首页里面的样式造成影响 不会
在这里插入图片描述
在这里插入图片描述
假如希望my-style和home的样式相互影响
希望home页面设置的样式影响它则
在这里插入图片描述
在这里插入图片描述
如下受到影响就变成红色了
在这里插入图片描述
改成shared的话对页面也造成影响了Hekllo Word也变成红色的了在这里插入图片描述

如下这个默认值的样式就不会受到影响
在这里插入图片描述
在这里插入图片描述

39给组件化 传递数据和样式

在这里插入图片描述在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
这几个值就会传到上面那个string那儿去
在这里插入图片描述在这里插入图片描述
上面这个写法有个缺点就是没有默认值
假如第三个没有传入 那么它压根就没有标题
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
observer对等vue的watch
组件 js相当于一个桥了
在这里插入图片描述
如下写有个缺点 全部标题都会变成红色
在这里插入图片描述
先使用titleClass
property最主要的作用在于让首页给自定义组件传递过去数据 然后它来展示这些数据
在这里插入图片描述
接下来就可以给titleClass赋值
在这里插入图片描述
然后还要给类设置样式
在这里插入图片描述
我的做出来没反应
在这里插入图片描述
在这里插入图片描述

40自定义事件传递数据

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
希望点击按钮 上面数字加1 也就是自定义组件内部发生点击 外面加1
1先监听按钮的点击
在这里插入图片描述
在这里插入图片描述
这样还是不能解决问题
想办法把组件内部发生的事件传出去
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如果想在home中拿到上面这些数据的话 它是通过event来拿的
在这里插入图片描述

41 tabcontrol组件练习

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
用flex布局 做
在这里插入图片描述

在这里插入图片描述
上面十年写死的情况
不能写死的话就由外界决定
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
接下来做一个衣服默认为红色 然后点击谁 谁就是红色
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述
上面点击发生了反应 但是不知道点击的是谁 就用event
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
然后下面还有一个红线
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
内部发生了点击 告诉首页 j就相当于自定义组件内部发生了点击 告诉页面 如下
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述在这里插入图片描述

42获取组件对象的方式

在这里插入图片描述在这里插入图片描述在这里插入图片描述
data最主要是做一些数据的初始化的
把下面这个counter显示到上面去
在这里插入图片描述
有了这个组件之后希望在HOME里面对它进行使用
就要在HOME里面做一个注册

在这里插入图片描述
使用
在这里插入图片描述在这里插入图片描述在这里插入图片描述
如果只是想在组件内部对某个数据做一个修改那么只需要如下
在这里插入图片描述在这里插入图片描述
但是在首页中不能这样子 因为当前这个page代表的是page对象 并不是组件对象
在这里插入图片描述
要换成组件对象
在这里插入图片描述
获取组件对象
在这里插入图片描述
就是通过下面那个class或者id去拿到那个组件对象
在这里插入图片描述
在这里插入图片描述

<m-sel class="sel-class" id=""/> 

这里面的class和id绑定一个就可以了
推荐id唯一标识
class通过.来拿 id通过#来拿
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
但是上面这样做其实并不规范
因为相当于在外面通过这个setData想办法直接修改如下的变量在这里插入图片描述
修改数据一般最好如下暴露出来一个方法统一进行修改在这里插入图片描述
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
这个10给上面那个num传过去

在这里插入图片描述
这个this.setData就是指的上面那个component组件
在这里插入图片描述
如上每次点击都加了10
如果想加其它数字直接修改下面那个数字就可以了
在这里插入图片描述在这里插入图片描述

43组件化 插槽slot的使用过程

在这里插入图片描述在这里插入图片描述
如下 中间暂时不写 等会显示
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
注册
在这里插入图片描述
没有插入任何内容时 可以使用单标签
在这里插入图片描述
如果希望中间第一次放按钮 第二次放文本 第三次放图片
这时候就要使用双标签了

在这里插入图片描述
当像上面那样做的时候 它就会把插入的标签替换到如下位置 也就是插槽的位置
在这里插入图片描述在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
以上就是单个插槽的使用

下面是多个插槽的使用在这里插入图片描述
注册
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
从结构上看 它并没有替换任何一个插槽而是跑到后面去了
在这里插入图片描述在这里插入图片描述
如上虽然选定了slot但是 更糟糕button压根就没有出现
在这里插入图片描述
如下之前这个 就是决定了组件和页面之间 样式的共享方式
在这里插入图片描述
加上如下属性才能使用多插槽
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
如上slider放在了button上面可见是没有问题的
但是我的得换一下位置它才上去 谁放在前面它编译出来就是在上面 位置靠后它编译出来就在下面它才不管你是slot几
在这里插入图片描述
在这里插入图片描述在这里插入图片描述在这里插入图片描述

44组件化component构造器

总结 在下面那个C欧美破嫩头中到底能传入哪些东西
在这里插入图片描述
在这里插入图片描述
如果想在某个页面里面定义函数直接就在如下大页面里面定义
在这里插入图片描述
但是组件不让这么干 在组件内部如果想要定义函数 必须是定义在methods里面的
在这里插入图片描述
在这里插入图片描述
observers不仅可以监听data;里面的数据 也可以监听title里面是数据
在这里插入图片描述
也就是说properties里的数据既可以在在这里插入图片描述
这里面监听 也可以在在这里插入图片描述
这里监听
只不过在observers监听 它拿不到oldVal数据只能拿到ewVal数据在这里插入图片描述
都有自己的生命周期
在这里插入图片描述
组件对象也有自己的生命周期 分成了2部分
一个组件在一个页面比如home页面里使用 组件本身有生命周期 页面,页面也有自己的生命周期
组件可以监听组件本身的生命周期 也可以监听页面的生命周期
在这里插入图片描述
监听页面的生命周期情况如下在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值