• 小程序(三)


    前言:续上集,寒冷不能停止学习,嘻嘻

    (一) 基础组件

      1.媒体主键(video制作弹幕)

     

    (二) 创建自定义主键

      一个自定义组件由 json wxml wxss js 4个文件组成

    //必要条件:要在 json 文件中进行自定义组件声明

    {
    "component": true
    }

     
    #使用已注册的自定义组件前,首先要在使用方页面的 json 文件中进行引用声明。 

    {
      "usingComponents":{
      "标签名(可自定义)":"组件所在路径(即定义组件的目录所在地)"

      }
    }

    注意事项:

    • 因为WXML节点标签名只能是小写字母、中划线和下划线的组合,所以自定义组件的标签名也只能包含这些字符。

    • 自定义组件也是可以引用自定义组件的,引用方法类似于页面引用自定义组件的方式(使用 usingComponents 字段)。

    • 自定义组件和使用自定义组件的页面所在项目根目录名不能以“wx-”为前缀,否则会报错。

    • 旧版本的基础库不支持自定义组件,此时,引用自定义组件的节点会变为默认的空节点。

    (三) slot节点

      在组件模板中可以提供一个 <slot> 节点,用于承载组件引用时提供的子节点。

    //注意:默认情况下,一个组件的wxml中只能有一个slot。需要使用多slot时,可以在自定义组件js中声明启用:

    Component({
      options: {
      multipleSlots: true // 在组件定义时的选项中启用多slot支持
    }
    })

    //此时,可以在这个组件的wxml中使用多个slot,以不同的 name 来区分:

    <view class="wrapper">
    <slot name="before"></slot>
    <view>这里是组件的内部细节</view>
    <slot name="after"></slot>
    </view>

    //使用时,用 slot 属性来将节点插入到不同的slot上:
    <view> <component-tag-name> <!-- 这部分内容将被放置在组件 <slot name="before"> 的位置上 --> <view slot="before">这里是插入到组件slot name="before"中的内容</view> <!-- 这部分内容将被放置在组件 <slot name="after"> 的位置上 --> <view slot="after">这里是插入到组件slot name="after"中的内容</view> </component-tag-name> </view>

    (三) 外部样式

    //有时,组件希望接受外部传入的样式类。此时可以在 Component 中用 externalClasses 定义段定义若干个外部样式类:
    Component({
      externalClasses: ['my-class']
    })

    //这样,组件内的效果将会受到外部样式的影响:
    <custom-component class="my-class">这段文本的颜色由组件外的 class 决定</custom-component>

    (四) 全局样式

    //使用外部样式类可以让组件使用指定的组件外样式类,如果希望组件外样式类能够完全影响组件内部,可以将组件构造器中的options.addGlobalClass字段置为true:
    /* 组件 custom-component.js */
    Component({
      options: {
        addGlobalClass: true,
      }
    })
    //设置后在组件的模板文件中:
    <!-- 组件 custom-component.wxml -->
    <text class="red-text">这段文本的颜色由组件外的 class 决定</text>

    注意:当开放了全局样式类,存在外部样式污染组件样式的风险,请谨慎选择。

    (五) 传递模板数据

    //与普通的 WXML 模板类似,可以使用数据绑定,这样就可以向子组件的属性传递动态数据,但是需要注意,绑定数据前,需要在自定义模板的js文件中进行申明: 
    Component({
    
      properties: {
        属性1: {
          type:数据类型,  //支持的数据类型:String、Array、Object、null、Boolean
          value: 默认值
        },
        属性2: {
          type: 数据类型,
          value: 默认值,
          observer(新值, 老值, 属性名){//回调函数
    
          }
        }
      }
    };
    <!-- 引用组件的页面模板 -->
    <view>
      <component-tag-name 属性1="属性1值" 属性2="属性2值">
          ....
      </component-tag-name>
    </view>
    IT这条路,当你懂得越多的时候,那么你不懂的也就会越多了.
  • 相关阅读:
    自定义注解!绝对是程序员装逼的利器!!
    Java集合总结大全史上最强
    年轻人不讲武德,竟然还搞不懂JVM?求你们来看阿里Java开发岗的招聘要求吧!
    基于VisualStudio11开发Windows8的Direct2DMetro应用程序范例(2) 国际化文字展示
    现实世界的Windows Azure:采访SIVECO Romania的高级电子教学部门经理Florin Anton
    Microsoft Research和Windows Azure合作伙伴对数据发现和共享的影响
    Windows Azure安全信任中心启动了
    Windows Azure ISV博客系列:Tribe of Noise PRO
    基于Visual Studio2012实现Windows8的metro界面笔迹手写识别文档
    基于VisualStudio11开发Windows8的Metro sample讲解(1)MessageBox
  • 原文地址:https://www.cnblogs.com/learningPHP-students2018/p/10204767.html
Copyright © 2020-2023  润新知