npm构建vant小程序

npm构建小程序需要下载node.js然后在文件上方目录输入cmd,剩下步骤如图所示:

或者登录 官网 有具体介绍: https://youzan.github.io/vant-weapp/#/home


下面介绍一些简单的组件:

JSON文件:

json文件为引入的组件:

{

  "usingComponents": {

    "MySwiper":"/components/MySwiper/MySwiper",

    "van-button": "@vant/weapp/button/index",

    "van-cell": "@vant/weapp/cell/index",

    "van-cell-group": "@vant/weapp/cell-group/index",

    "van-config-provider": "@vant/weapp/config-provider/index",

    "van-icon": "@vant/weapp/icon/index",

    "van-image": "@vant/weapp/image/index",

    "van-row": "@vant/weapp/row/index",

    "van-col": "@vant/weapp/col/index",

    "van-popup": "@vant/weapp/popup/index",

    "van-toast": "@vant/weapp/toast/index",

    "van-transition": "@vant/weapp/transition/index"

  }

}

wxml部分:

<!--pages/home/home.wxml-->

<van-transition  name="fade-up" show="{{ true }}" custom-class="block">内容</van-transition>

<van-toast id="van-toast" />

<view class="van-hairline--bottom" style="height: 100px;">

123123123

</view>

<view class="van-multi-ellipsis--l3">

  这是一段最多显示三行的文字,后面的内容会省略。

  这是一段最多显示三行的文字,后面的内容会省略

  这是一段最多显示三行的文字,后面的内容会省略

  这是一段最多显示三行的文字,后面的内容会省略

</view>

<!-- <view class="van-multi-ellipsis--l2">

  这是一段最多显示两行的文字,后面的内容会省略。

  这是一段最多显示两行的文字,后面的内容会省略。

  这是一段最多显示两行的文字,后面的内容会省略。

</view> -->

<!-- <view class="van-ellipsis">

  这是一段宽度限制 250px 的文字,后面的内容会省略。

</view> -->

<van-cell title="展示弹出层" is-link bind:click="showPopup" />

<van-popup show="{{ show }}" bind:close="onClose"

    position="top"

    custom-style="height: 20%;text-align:center;">内容</van-popup>

<view style="padding:100px" bindtap="fn">内容</view>

<MySwiper slides="{{slides}}" bindchildChange="childChange"></MySwiper>

<van-button type="default">默认按钮</van-button>

<van-button type="primary">主要按钮</van-button>

<van-button type="info">信息按钮</van-button>

<van-button type="warning">警告按钮</van-button>

<van-button type="danger">危险按钮</van-button>

<van-cell-group>

  <van-cell title="单元格" value="内容" />

  <van-cell title="单元格" value="内容" label="描述信息" border="{{ false }}" />

</van-cell-group>

<van-icon name="close" />

<van-icon name="https://b.yzcdn.cn/vant/icon-demo-1126.png" />

<van-icon name="chat" dot />

<van-icon name="chat" info="9" />

<van-icon name="chat" info="99+" />

<van-icon name="arrow-left" color="red"  size="50px"/>

<van-image round lazy-load  slot="loading" width="100" height="100" src="https://img.yzcdn.cn/vant/cat.jpeg" />

<van-image use-error-slot>

  <text slot="error">加载失败</text>

</van-image>

<van-row>

  <van-col span="8">span: 8</van-col>

  <van-col span="8">span: 8</van-col>

  <van-col span="8">span: 8</van-col>

</van-row>

<van-row>

  <van-col span="4">span: 4</van-col>

  <van-col span="10" offset="4">offset: 4, span: 10</van-col>

</van-row>

<van-row>

  <van-col offset="12" span="12">offset: 12, span: 12</van-col>

</van-row>

<van-row gutter="20">

  <van-col span="8">span: 8</van-col>

  <van-col span="8">span: 8</van-col>

  <van-col span="8">span: 8</van-col>

</van-row>

wxss文件://可引入全局

/* pages/home/home.wxss */

/* @import '@vant/weapp/common/index.wxss'; */

@import '/miniprogram_npm/@vant/weapp/common/index.wxss'

wxjs文件:

// pages/home/home.js

// import Toast from 'path/to/@vant/weapp/dist/toast/toast';

import Toast from '../../miniprogram_npm/@vant/weapp/toast/toast';

Page({

    /**

     * 页面的初始数据

     */

    data: {

        slides:[],

        show:false

    },

    fn(){

        wx.showToast({

          title: 'title',

        })

    },

    showPopup() {

        this.setData({ show: true });

    },

    onClose(){

        this.setData({ show: false });

    },

    /**

     * 生命周期函数--监听页面加载

     */

    onLoad: function (options) {

        Toast('我爱学前端')

        this.getImage();

    },

    childChange:function(e){

        wx.showToast({

          title: e.detail.toString(),

          icon:'none'

        })

    },

    getImage: function () {

        wx.request({

            url: '。。。。。。。。。。。。‘//接口另找,

            fail:(res)=>{

                console.log(res)

            },

            success:(res)=>{

                let { slides } = res.data;

                this.setData({slides})

            }   

        })

    },

    /**

     * 生命周期函数--监听页面初次渲染完成

     */

    onReady: function () {

    },

    /**

     * 生命周期函数--监听页面显示

     */

    onShow: function () {

    },

    /**

     * 生命周期函数--监听页面隐藏

     */

    onHide: function () {

    },

    /**

     * 生命周期函数--监听页面卸载

     */

    onUnload: function () {

    },

    /**

     * 页面相关事件处理函数--监听用户下拉动作

     */

    onPullDownRefresh: function () {

    },

    /**

     * 页面上拉触底事件的处理函数

     */

    onReachBottom: function () {

    },

    /**

     * 用户点击右上角分享

     */

    onShareAppMessage: function () {

    }

})

效果图:


日历组件:

JSON部分:

{

  "usingComponents": {

    "van-cell": "@vant/weapp/cell/index",

    "van-calendar": "@vant/weapp/calendar/index"

  }

}

wxml部分:

<!--pages/vantdemo/vantdemo.wxml-->

<van-cell title="选择单个日期" value="{{ date }}" bind:click="onDisplay" />

<van-calendar 

    type="range" 

    show="{{ show }}" 

    bind:close="onClose" 

    bind:confirm="onConfirm" 

    show-confirm="{{ true }}" 

    color="#07c160" 

    min-date="{{ minDate }}" 

    max-date="{{ maxDate }}" 

    confirm-text="完成" 

    confirm-disabled-text="请选择结束时间" 

    formatter="{{ formatter }}" 

    position="top"

    max-range="{{ 2}}"

    first-day-of-week="{{ 3 }}" 

    poppable="{{ true }}"

/>

js部分:

// pages/vantdemo/vantdemo.js

Page({

    /**

     * 页面的初始数据

     */

    data: {

        show: false,

        date:'',

        minDate: new Date('2022-3-1').getTime(),

        maxDate: new Date('2022-3-5').getTime(),

        formatter(day){

            const month = day.date.getMonth() + 1;

            const date = day.date.getDate();


            if (month === 3) {

              if (date === 1) {

                day.topInfo = '赶集';

              } else if (date === 3) {

                day.topInfo = '出去爬山';

              } else if (date === 11) {

                day.text = '今天';

              }

            }


            if (day.type === 'start') {

              day.bottomInfo = '入住';

            } else if (day.type === 'end') {

              day.bottomInfo = '离店';

            }


            return day;

        }

    },

    onDisplay() {

        this.setData({

            show: true

        });

    },

    onClose() {

        this.setData({

            show: false

        });

    },

    formatDate(date) {

        date = new Date(date);

        /* 2022-02-28 这种格式 */

        return `${date.getFullYear()}-${date.getMonth() + 1}-${date.getDate()}`;

    },

    onConfirm(event) {

        console.log(event)

        let [start,end] = event.detail;

        console.log(start,end)

        this.setData({

            show: false,

            date: `${this.formatDate(start)}~${this.formatDate(end)}`

        });

    },

    /**

     * 生命周期函数--监听页面加载

     */

    onLoad: function (options) {

    },

    /**

     * 生命周期函数--监听页面初次渲染完成

     */

    onReady: function () {

    },

    /**

     * 生命周期函数--监听页面显示

     */

    onShow: function () {

    },

    /**

     * 生命周期函数--监听页面隐藏

     */

    onHide: function () {

    },

    /**

     * 生命周期函数--监听页面卸载

     */

    onUnload: function () {

    },

    /**

     * 页面相关事件处理函数--监听用户下拉动作

     */

    onPullDownRefresh: function () {

    },

    /**

     * 页面上拉触底事件的处理函数

     */

    onReachBottom: function () {

    },

    /**

     * 用户点击右上角分享

     */

    onShareAppMessage: function () {

    }

})

效果图:


!!实际组件效果调试可登录官网: https://youzan.github.io/vant-weapp/#/home

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容