美文网首页
微信小程序自定义组件

微信小程序自定义组件

作者: JennyWeb | 来源:发表于2021-05-12 10:24 被阅读0次

    如何创建以及引用

    第一步 在根目录下新建组件的文件夹, 如components
    第二步 在组件文件夹下新建组件, 可右击点击新建component, 比如我的组件名字为a
    第三步 在组件中写你需要的结构以及样式等
    第四步 引入到需要的父组件中

    比如我想在index中的index.wxml中引入组件a

    • 1 找到index.json idnex页面的配置文件
      {
      "usingComponents": {
      "组件的名字自己起名,如 Tab":"找到组件a的相对路径"
      }
      }
    • 2 在index.wxml中引入组件
      <Tab></Tab> (index.json的那个自己起的名字)

    组件直接的通信

    父组件向子组件传递数据

    • 1 父组件 .wxml中
      <Tab 属性=‘属性值’></Tab>
      <Tab aa=‘123’></Tab> aa就是父组件要给子组件传递的数据可以是数值、字符串、数组等等
    • 2 子组件 a.js
      properties: {
      // 要接受的数据的名称
      aa:{
      // type是要接收父组件传递过来的数据类型
      type:String,
      // value 是默认值
      value:""
      }
      }
    • 3 子组件就可以拿到数据了, 这里的数据和data中的数据一样使用即可
      <text>{{aa}}</text>

    子向父传递数据

    • 首先我们要准确的知道:
      1、组件中的事件回调函数需要在methods中写
      2、bindtap 绑定的事件是可以传递data-xx 自定义属性和id的, 通过 event.currentTarget.dataset查看事件接收的data-xx /id
    • 如何向父组件传递数据:
      1、保证正确引入,能正常使用
      2、子组件: 在子组件的wxml中添加事件 如child,传递想要传递的数据(通过data-xx / id)
      3、子组件的js:在methods接收这个事件 child, 将 第二步传递的数据接收到, 写法: event.currentTarget.xx 查看 , 比如要传index这个变量
      4、在父组件中: 在组件标签上自定义一个事件如 <Com bindchange="fn"></Com>, change就是我父组件中的自定义事件的名字 ,注意是“自定义事件”
      5、子组件的js :在 3步将接收到的数据 传给父组件的自定义事件 写法: this.triggerEvent('change',{index}) index 是假设的拿到的变量
      6、父组件:对自定义事件做出回应, 写fn函数 通过event.detail 查看并获取5步传过来的数据 例子中是index

    总结:

    父向子--》通过标签传递属性 子组件就会接收(prototies)
    子向父--》 通过事件的方式传递
    蟹蟹点赞,关注暴富~~

    相关文章

      网友评论

          本文标题:微信小程序自定义组件

          本文链接:https://www.haomeiwen.com/subject/rbfndltx.html