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

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 160,026评论 4 364
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 67,655评论 1 296
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 109,726评论 0 244
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,204评论 0 213
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 52,558评论 3 287
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 40,731评论 1 222
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 31,944评论 2 314
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,698评论 0 203
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,438评论 1 246
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,633评论 2 247
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,125评论 1 260
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,444评论 3 255
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,137评论 3 238
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,103评论 0 8
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,888评论 0 197
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 35,772评论 2 276
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 35,669评论 2 271

推荐阅读更多精彩内容