-- 页面的 json --> { "usingComponents": { "my-component": "/components/custom-component" } } <! -- 组件 custom-component.wxml --> <custom-component> <view>{{myProperty}}</view> <button bindtap='onMyButtonTap /button> <view>{{A[0].B}}</view> <button bindtap='_myPrivateMethod'>_myPrivateMethod</button> </custom-component -- 组件 custom-component.wxml --> <custom-component> <view>{{myProperty}}</view> <button bindtap='onMyButtonTap '_myPrivateMethod'>_myPrivateMethod</button> <button bindtap='changeParentData'>向父组件传值</button> </custom-component
-- 页面的 json --> { "usingComponents": { "my-component": "/components/custom-component" } } <! -- 组件 custom-component.wxml --> <custom-component> <view>{{myProperty}}</view> <button bindtap='onMyButtonTap /button> <view>{{A[0].B}}</view> <button bindtap='_myPrivateMethod'>_myPrivateMethod</button> </custom-component -- 组件 custom-component.wxml --> <custom-component> <view>{{myProperty}}</view> <button bindtap='onMyButtonTap '_myPrivateMethod'>_myPrivateMethod</button> <button bindtap='changeParentData'>向父组件传值</button> </custom-component
-- 组件 custom-component.wxml --> <custom-component class="my-class">这段文本的颜色由组件外的 class 决定</custom-component -- 如果设置了 virtualHost ,节点上的样式将失效 --> <custom-component style="color: blue">不是蓝色的</custom-component>
问题 4,第 16 小节也有提到,有以下常用的配置: handler 执行的函数 deep 是否深度 immediate 是否立即执行 事件修饰符 这个问题我会先写一段代码: ``` <custom-component >内容</custom-component> ``` 然后问:怎样给这个自定义组件 custom-component 绑定一个原生的 click 事件? 我一开始并不会问什么是事件修饰符,但是如果候选人说 <custom-component @click="xxx">,就已经错了,说明它对这个没有概念。 绑定原生的 click 是这样的: ``` <custom-component @click.native="xxx">内容</custom-component> ``` 该问题会引申很多,比如常见的事件修饰符有哪些 这样就可以在自定义组件上用 v-model 了: ``` <custom-component v-model="value"></custom-component> ``` 如果你能说到 model 选项
-- 组件 custom-component.wxml --> <custom-component> <view class='outer-title bolded'>{{myProperty}}< </custom-component> <!
-- 使用组件的页面或者组件 --> <view> <custom-component> <view slot="slot1">我会被插入到组件上方</view> <view slot="slot2">我会被插入到组件下方</view> </custom-component>
举个例子,我们在模板中引入一个组件标签 <custom-component>: <custom-component msg="test"></custom-component> 我们可以用 vnode 这样表示 <custom-component> 组件标签: const CustomComponent = { // 在这里定义组件对象 } const vnode = { type: CustomComponent , props: { msg: 'test' } } 组件 vnode 其实是对抽象事物的描述,这是因为我们并不会在页面上真正渲染一个 <custom-component> 标签,而最终会渲染组件内部定义的
我们先来思考这样问题:怎样给这个自定义组件 custom-component 绑定一个原生的 click 事件? <custom-component>组件内容</custom-component> 如果你的回答是 <custom-component@click="xxx">,那就错了。 绑定原生的 click 是这样的: <custom-component @click.native="xxx">组件内容</custom-component> 实际开发过程中离不开事件修饰符,常见事件修饰符有以下这些
二、使用脚手架开发 2.1 脚手架环境初始化 npm install -g @wechat-miniprogram/miniprogram-cli miniprogram init --type custom-component ,问就是 vite 构建,支持 Vue3,比 VuePress 构建更快 [3] https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component /trdparty.html 官方提供的第三方组件开发文档 [4] https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component
} } }) 获取子组件或父组件 详细文档移步wx小程序官方文档 https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component
官方文档: https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/ 和vue的写法相比,感觉也就换了个皮
-- 组件 custom-component.wxml --> <custom-component> <view>{{myProperty}}</view> <button bindtap='onMyButtonTap /button> <view>{{A[0].B}}</view> <button bindtap='_myPrivateMethod'>_myPrivateMethod</button> </custom-component true, "usingComponents": {} } 3.页面使用组件 { "usingComponents": { "my-component": "/components/custom-component
Vue3 jsx新特性,支持v-model使用,如果组件的v-mdel是modelValue的话,那使用很简单renderDropdown(h){const value = "value"return <custom-component </custom-component>}在Vue2里面,v-mode必须使用value的prop,用法不够灵活。
例如,我们在模板中引入一个组件标签 custom-component: <custom-component msg="test"></custom-component> 复制代码 我们可以用 vnode 这样表示 custom-component 组件标签: const CustomComponent = { // 在这里定义组件对象 } const vnode = { type: CustomComponent , props: { msg: 'test' } } 复制代码 组件 vnode 其实是对抽象事物的描述,这是因为我们并不会在页面上真正渲染一个 custom-component 标签,
组件的生命周期方法编写的位置与页面的生命周期是不一样的,组件生命周期声明是写在 lifetimes 当中 官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component
bindtouchmove="onTouchMove" bindtouchend="onTouchEnd" bindtouchcancel="onTouchCancel" bindtap="onTap" generic:custom-component ="custom-component"></element> </block> </view> <element wx:elif="{{item1.type === 'element'} bindtouchmove="onTouchMove" bindtouchend="onTouchEnd" bindtouchcancel="onTouchCancel" bindtap="onTap" generic:custom-component ="custom-component"></element> </block> remax remax 是通过 react 来写小程序,整个小程序是运行在 worker 线程,remax 实现了一套自定义的
-- 父组件监听子组件事件 --><custom-component bind:customEvent="onCustomEvent"></custom-component>Page({ onCustomEvent
btn_name">{{ item.label }}
点击后获取的参数 4.参考资料 官方文档:https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component/ 项目代码
同名的生命周期函数 关于详细的覆盖和组合规则,大家可以参考微信小程序官方文档给出的说明: https://developers.weixin.qq.com/miniprogram/dev/framework/custom-component