• LinUI学习5 自定义组件的使用


    LinUI学习5 自定义组件的使用

    LinUI采用的是自定义组件,因此我们需要知道如何使用自定义组件。

    1、导入所需要的LinUI组件

    因为LinUI组件大小为500kb左右,因此这里采用全部导入的方式

    首先需要使用npm下载详情见之前的学习笔记1

    或者参考官网链接:https://doc.mini.talelin.com/start/

    在所需要的页面json中引入对应的组件,

    也可以直接在app.json中直接引入

    示例:

      "usingComponents": {
        "l-gird":"/miniprogram_npm/lin-ui/grid/index",
        "l-gird-item":"/miniprogram_npm/lin-ui/grid-item/index"
      },

     

    2、获取组件所需要的数据

    在model文件夹下新建一个category.js文件用于请求数据(http请求已经封装好,详见前面的笔记)

    const { Http } = require("../utils/http");
    class Category {
      static async getGridCategory(){
      return await Http.request({
        url:`category/grid/all`
      })
      }
    }
    export{
      Category
    }

    3、编写自定义组件(以gird宫格为例)

    我们需要在LinUI提供的组件的基础上再自定义生成一个组件

    因此我们需要

    新建一个components文件夹用于存放自定义的组件

    在文件夹内新建一个category-grid文件夹 并在此文件夹下新建component(一般命名为index)

    并在对应的文件夹下修改,这里css没有定义

    js:

    // components/category-grid/index.js
    Component({
      /**
       * 组件的属性列表
       */
      properties: {
      grid:Array
      },
    
      /**
       * 组件的初始数据
       */
      data: {
    
      },
    
      /**
       * 组件的方法列表
       */
      methods: {
    
      }
    })

    wxml:

    <view class="container">
      <l-grid>    
        <block wx:for="{{grid}}">
          <l-grid-item>
            <view>
              <image src="{{item.img}}">
              </image>
              <text>
                {{item.title}}
              </text>
            </view>
          </l-grid-item>
        </block>
      </l-grid>
    </view>

     4、使用自定义组件

    我们在第三步的时候已经自定义了一个category-grid组件

    示例:我们需要在home.wxml调用到我们第三步骤定义的组件

    因为只有该页面使用到category-grid组件所以只需要在home.json中定义

      "usingComponents": {
        "s-category-grid":"/components/category-grid/index"
      }

    在js中使用封装好的http请求

     data: {
    
        grid:[]
      },
    
      /**
       * 生命周期函数--监听页面加载
       */
      onLoad: async function (options) {
        this.initAllData()
    
      },
      async initAllData() {
    
        const grid = await Category.getGridCategory()
          
        this.setData({
    
          grid:grid
        })
      },

    在wxml中直接调用即可使用该组件

      <s-category-grid grid="{{grid}}">
      </s-category-grid>
  • 相关阅读:
    为自己的开篇
    软考程序员笔记
    centos php7 安装mysqli扩展心得
    php判断访问协议是否是https
    go语言新建多维map集合
    获取contenteditable区域光标所在位置信息
    ckeditor中 config.js等通过ckeditor.js引入文件手动修改方法
    Vue使用——v-for循环里面使用v-if判断显示数据
    数据库关联字段设置
    Spring Jpa 自动建表——时间字段设置
  • 原文地址:https://www.cnblogs.com/mrkr/p/14301035.html
Copyright © 2020-2023  润新知