{ "#ifdef": { "body": [ "<!-- #ifdef ${1|APP-PLUS,MP,MP-ALIPAY,MP-BAIDU,MP-WEIXIN,MP-QQ,H5|} -->", "$0", "<!-- #endif -->" ], "prefix": "ifdef", "project": "uni-app", "scope": "vue-html" }, "#ifndef": { "body": [ "<!-- #ifndef ${1|APP-PLUS,MP,MP-ALIPAY,MP-BAIDU,MP-WEIXIN,MP-QQ,H5|} -->", "$0", "<!-- #endif -->" ], "prefix": "ifndef", "project": "uni-app", "scope": "vue-html" }, "Vue Base": { "body": [ "<template>", "\t<${1:div}>", "", "\t</${1:div}>", "</template>", "", "<script>", "\texport default {", "\t\t${0}", "\t}", "</script>", "", "<style scoped>", "", "</style>" ], "description": "Base for Vue File", "prefix": "vbase", "scope": "vue-html" }, "Vue Class Binding": { "body": ["<${1|div|} :class=\"{ ${2:className}: ${3:data} }\"><,${1:div}>"], "description": "vue class binding", "prefix": "vclass", "scope": "vue-html" }, "Vue Class Binding Object": { "body": [ "<${1|div|} :class=\"[${2:classNameA}, ${3:classNameB}]\"><,${1:div}>" ], "description": "vue class binding", "prefix": "vclass-obj", "scope": "vue-html" }, "Vue Component with Props Binding": { "body": ["<${1|component|} :${1:propName}=\"${0}\"><,${1:component}>"], "description": "component element with props", "prefix": "vel-props", "scope": "vue-html" }, "Vue Image Source Binding": { "body": [ "<img :src=\"'/path/to/images/' + ${1:fileName}\" alt=\"${2:altText}\"/>" ], "description": "image source binding", "prefix": "vsrc", "scope": "vue-html" }, "Vue Multiple Conditional Class Bindings": { "body": [ "<${1|div|} :class=\"[${2:classNameA}, {${3:classNameB} : ${4:condition}}]\"><,${1:div}>" ], "description": "vue multiple conditional class bindings", "prefix": "vclass-obj-mult", "scope": "vue-html" }, "Vue Nuxt Routing Link": { "body": ["<nuxt-link to=\"/${1:page}\">${1:page}</nuxt-link>"], "description": "nuxt routing link", "prefix": "vnuxtl", "scope": "vue-html" }, "Vue Style Binding": { "body": [ "<${1|div|} :style=\"{ fontSize: ${2:data} + 'px' }\"><,${1:div}>" ], "description": "vue inline style binding", "prefix": "vstyle", "scope": "vue-html" }, "Vue Style Binding Object": { "body": [ "<${1|div|} :style=\"[${2:styleObjectA}, ${3:styleObjectB]}\"><,${1:div}>" ], "description": "vue inline style binding, objects", "prefix": "vstyle-obj", "scope": "vue-html" }, "Vue Transition Component with JavaScript Hooks": { "body": [ "<transition", "\tmode=\"out-in\"", "\t@before-enter=\"beforeEnter\"", "\t@enter=\"enter\"", "", "\t@before-leave=\"beforeLeave\"", "\t@leave=\"leave\"", "\t:css=\"false\">", "", "</transition>" ], "description": "transition component js hooks", "prefix": "vanim", "scope": "vue-html" }, "Vue v-for": { "body": [ "<${1:div} v-for=\"${2:item} in ${2:item}s\" :key=\"${2:item}.id\">", "\t{{ ${2:item} }}", "</${1:div}>" ], "description": "vfor statement", "prefix": "vfor", "scope": "vue-html" }, "Vue v-model Directive": { "body": ["<input v-model=\"${1:data}\" type=\"text\" />"], "description": "v-model directive", "prefix": "vmodel", "scope": "vue-html" }, "Vue v-model Number Directive": { "body": [ "<input v-model.number=\"${1:numData}\" type=\"number\" step=\"1\" />" ], "description": "v-model directive number input", "prefix": "vmodel-num", "scope": "vue-html" }, "Vue v-on Shortcut Directive": { "body": ["@click=\"${1:handler}(${2:arg}, $event)\""], "description": "v-on click handler with arguments", "prefix": "von", "scope": "vue-html" }, "uAccordion": { "body": [ "<view class=\"uni-list\">", "\t<view class=\"uni-list-cell uni-collapse\" v-for=\"(item,index) in list$1\" :key=\"index\">", "\t\t<view class=\"uni-list-cell-navigate uni-navigate-bottom\" :class=\"item.show ? 'uni-active' : ''\" @click=\"trigerCollapse$0(index)\">", "\t\t\t折叠面板{{index}}", "\t\t</view>", "\t\t<view class=\"uni-collapse-content\" :class=\"item.show ? 'uni-active' : ''\">", "\t\t\t<view class=\"page-pd\">", "\t\t\t\t<view class=\"uni-h1\">hello uni-app</view>", "\t\t\t\t<view class=\"uni-h2\">hello uni-app</view>", "\t\t\t\t<view class=\"uni-h3\">hello uni-app</view>", "\t\t\t</view>", "\t\t</view>", "\t</view>", "</view>" ], "prefix": "uaccordion", "project": "uni-app", "scope": "vue-html" }, "uAudio": { "body": [ "<audio :src=\"$1\" :poster=\"$0\" :name=\"$2\" :author=\"$3\" :action=\"$4\" controls></audio>" ], "prefix": "uaudio", "project": "uni-app", "scope": "vue-html" }, "uBadge": { "body": ["<uni-badge text=\"$1\" type=\"$2\"></uni-badge>"], "prefix": "ubadge", "project": "uni-app", "scope": "vue-html" }, "uButton": { "body": ["<button type=\"primary\">$1</button>"], "prefix": "ubutton", "project": "uni-app", "scope": "vue-html" }, "uCalendar": { "body": [ "<uni-calendar lunar=\"\" @change=\"$1\" @to-click=\"$2\"></uni-calendar>" ], "prefix": "ucalendar", "project": "uni-app", "scope": "vue-html" }, "uCard": { "body": [ "<uni-card title=\"标题文字\" thumbnail=\"$1\" extra=\"额外信息$2\" note=\"Tips$3\">", "\t内容主体,可自定义内容及样式$4", "</uni-card>" ], "prefix": "ucard", "project": "uni-app", "scope": "vue-html" }, "uCheckbox": { "body": [ "<label class=\"checkbox\">", "\t<checkbox value=\"$1\" checked= />$0", "</label>" ], "prefix": "ucheckbox", "project": "uni-app", "scope": "vue-html" }, "uCollapse": { "body": [ "<uni-collapse @change=\"$1\">", "\t<uni-collapse-item title=\"$2\">", "\t\t内容$3", "\t</uni-collapse-item>", "</uni-collapse>" ], "prefix": "uCollapse", "project": "uni-app", "scope": "vue-html" }, "uCountDown": { "body": [ "<uni-countdown font-color=\"$1\" bgr-color=\"$2\" timer=\"$3\"></uni-countdown>" ], "prefix": "ucountdown", "project": "uni-app", "scope": "vue-html" }, "uDrawer": { "body": [ "<uni-drawer :visible=\"$1\">", "\t<view style=\"padding:30upx;\">", "\t\t$2", "\t</view>", "</uni-drawer>" ], "prefix": "uDrawer", "project": "uni-app", "scope": "vue-html" }, "uEditor": { "body": ["<editor placeholder=\"$1\"></editor>"], "prefix": "uEditor", "project": "uni-app", "scope": "vue-html" }, "uForm": { "body": [ "<form @submit=\"formSubmit\" @reset=\"formReset\">", "\t<view class=\"section section_gap\">", "\t\t<view class=\"section__title\">switch$1</view>", "\t\t<switch name=\"switch\" />", "\t</view>", "\t<view class=\"section section_gap\">", "\t\t<view class=\"section__title\">slider</view>", "\t\t<slider name=\"slider\" show-value></slider>", "\t</view>", "\t<view class=\"section\">", "\t\t<view class=\"section__title\">input</view>", "\t\t<input name=\"input\" placeholder=\"please input here\" />", "\t</view>", "\t<view class=\"section section_gap\">", "\t\t<view class=\"section__title\">radio</view>", "\t\t<radio-group name=\"radio-group\">", "\t\t<label>", "\t\t\t<radio value=\"radio1\" />radio1</label>", "\t\t<label>", "\t\t\t<radio value=\"radio2\" />radio2</label>", "\t\t</radio-group>", "\t</view>", "\t<view class=\"section section_gap\">", "\t\t<view class=\"section__title\">checkbox</view>", "\t\t<checkbox-group name=\"checkbox\">", "\t\t\t<label>", "\t\t\t\t<checkbox value=\"checkbox1\" />checkbox1</label>", "\t\t\t<label>", "\t\t\t\t<checkbox value=\"checkbox2\" />checkbox2</label>", "\t\t</checkbox-group>", "\t</view>", "\t<view class=\"btn-area\">", "\t\t<button formType=\"submit\">Submit</button>", "\t\t<button formType=\"reset\">Reset</button>", "\t</view>", "</form>" ], "prefix": "uform", "project": "uni-app", "scope": "vue-html" }, "uGrid": { "body": ["<uni-grid :data=\"$1\"></uni-grid>"], "prefix": "ugrid", "project": "uni-app", "scope": "vue-html" }, "uIcon": { "body": ["<uni-icon type=\"$1\"></uni-icon>"], "prefix": "uicon", "project": "uni-app", "scope": "vue-html" }, "uImage": { "body": ["<image src=\"$1\" mode=\"$2\">$0</image>"], "prefix": "uimage", "project": "uni-app", "scope": "vue-html" }, "uInput": { "body": ["<input type=\"text$1\" value=\"$0\" />"], "prefix": "uinput", "project": "uni-app", "scope": "vue-html" }, "uList": { "body": [ "<uni-list>", "\t<uni-list-item title=\"$1\" note=\"$2\"></uni-list-item>", "\t<uni-list-item title=\"$3\" note=\"$4\"></uni-list-item>", "</uni-list>" ], "prefix": "ulist", "project": "uni-app", "scope": "vue-html" }, "uListMedia": { "body": [ "<view class=\"uni-list\">", "\t<view class=\"uni-list-cell\" hover-class=\"uni-list-cell-hover\" v-for=\"(item,index) in list$1\" :key=\"index\">", "\t\t<view class=\"uni-media-list\">", "\t\t\t<image class=\"uni-media-list-logo\" :src=\"item.img$2\"></image>", "\t\t\t<view class=\"uni-media-list-body\">", "\t\t\t\t<view class=\"uni-media-list-text-top\">{{item.title$3}}</view>", "\t\t\t\t<view class=\"uni-media-list-text-bottom uni-ellipsis\">{{item.content$4}}</view>", "\t\t\t</view>", "\t\t</view>", "\t</view>", "</view>" ], "prefix": "ulistmedia", "project": "uni-app", "scope": "vue-html" }, "uLoadMore": { "body": [ "<uni-load-more :loadingType=\"$1\" :contentText=\"$2\"></uni-load-more>" ], "prefix": "uloadmore", "project": "uni-app", "scope": "vue-html" }, "uMap": { "body": ["<map :latitude=\"$1\" :longitude=\"$0\"></map>"], "prefix": "umap", "project": "uni-app", "scope": "vue-html" }, "uNavBar": { "body": [ "<uni-nav-bar left-icon=\"back\" left-text=\"返回\" right-text=\"菜单\" title=\"标题$1\"></uni-nav-bar>" ], "prefix": "unavbar", "project": "uni-app", "scope": "vue-html" }, "uNavigator": { "body": ["<navigator url=\"$1\">$0</navigator>"], "prefix": "unavigator", "project": "uni-app", "scope": "vue-html" }, "uNoticeBar": { "body": ["<uni-notice-bar single=\"$1\" text=\"$2\"></uni-notice-bar>"], "prefix": "uNoticeBar", "project": "uni-app", "scope": "vue-html" }, "uNumberBox": { "body": ["<uni-number-box @change=\"$1\"></uni-number-box>"], "prefix": "unumberbox", "project": "uni-app", "scope": "vue-html" }, "uPagination": { "body": [ "<uni-pagination title=\"$1\" show-icon=\"$2\" total=\"$3\" current=\"$4\"></uni-pagination>" ], "prefix": "uPagination", "project": "uni-app", "scope": "vue-html" }, "uPicker": { "body": [ "<picker mode=\"$1\" :range=\"$2\" @change=\"$3\">", "\t<view>picker组件</view>", "</picker>" ], "prefix": "upicker", "project": "uni-app", "scope": "vue-html" }, "uPickerView": { "body": [ "<picker-view indicator-style=\"height: 50px;\" :value=\"value$1\" @change=\"bindChange\">", "\t<picker-view-column>", "\t\t$0", "\t</picker-view-column>", "\t<picker-view-column>", "\t\t$2", "\t</picker-view-column>", "\t<picker-view-column>", "\t\t", "\t</picker-view-column>", "</picker-view>" ], "prefix": "upickerview", "project": "uni-app", "scope": "vue-html" }, "uPopup": { "body": [ "<uni-popup msg=\"$1\" :show=\"true$2\" type=\"middle$3\"></uni-popup>" ], "prefix": "upopup", "project": "uni-app", "scope": "vue-html" }, "uProductList": { "body": [ "<view class=\"uni-product-list\">", "\t<view class=\"uni-product\" v-for=\"(product,index) in productList$1\" :key=\"index\">", "\t\t<view class=\"image-view\">", "\t\t\t<image v-if=\"renderImage\" class=\"uni-product-image\" :src=\"product.image\"></image>", "\t\t</view>", "\t\t<view class=\"uni-product-title\">{{product.title}}</view>", "\t\t<view class=\"uni-product-price\">", "\t\t\t<text class=\"uni-product-price-favour\">¥{{product.originalPrice}}</text>", "\t\t\t<text class=\"uni-product-price-original\">¥{{product.favourPrice}}</text>", "\t\t\t<text class=\"uni-product-tip\">{{product.tip}}</text>", "\t\t</view>", "\t</view>", "</view>" ], "prefix": "uproductlist", "project": "uni-app", "scope": "vue-html" }, "uProgress": { "body": [" <progress percent=\"$1\" show-info$0 />"], "prefix": "uprogress", "project": "uni-app", "scope": "vue-html" }, "uRadio": { "body": [ "<label class=\"radio\">", "\t<radio value=\"$1\" checked= />$0", "</label>" ], "prefix": "uradio", "project": "uni-app", "scope": "vue-html" }, "uRate": { "body": ["<uni-rate value=\"$1\"></uni-rate>"], "prefix": "uRate", "project": "uni-app", "scope": "vue-html" }, "uRichText": { "body": ["<rich-text :nodes=\"$1\"></rich-text>"], "prefix": "urichtext", "project": "uni-app", "scope": "vue-html" }, "uScrollView": { "body": [ "<scroll-view scroll-y$1>", "\t<view>$0</view>", "\t<view></view>", "\t<view></view>", "\t<view></view>", "</scroll-view>" ], "prefix": "uscrollview", "project": "uni-app", "scope": "vue-html" }, "uSegmentedControl": { "body": [ "<uni-segmented-control :current=\"current$1\" :values=\"$0\" @clickItem=\"$2\"></uni-segmented-control>", "<view class=\"content\">", "\t<view v-show=\"current === 0\">", "\t\t选项卡1的内容", "\t</view>", "\t<view v-show=\"current === 1\">", "\t\t选项卡2的内容", "\t</view>", "\t<view v-show=\"current === 2\">", "\t\t选项卡3的内容", "\t</view>", "</view>" ], "prefix": "usegmentedcontrol", "project": "uni-app", "scope": "vue-html" }, "uSlider": { "body": ["<slider @change=\"$1\" show-value$0/>"], "prefix": "uslider", "project": "uni-app", "scope": "vue-html" }, "uSteps": { "body": ["<uni-steps :options=\"$1\" :active=\"0$2\"></uni-steps>"], "prefix": "usteps", "project": "uni-app", "scope": "vue-html" }, "uSwipeAction": { "body": [ "<uni-swipe-action :options=\"$1\">", "\t$2", "</uni-swipe-action>" ], "prefix": "uSwipeAction", "project": "uni-app", "scope": "vue-html" }, "uSwiper": { "body": [ "<swiper :indicator-dots=\"true\" :autoplay=\"true\" :interval=\"3000\" :duration=\"1000\">", "\t<swiper-item>", "\t\t<view class=\"swiper-item\">$1</view>", "\t</swiper-item>", "\t<swiper-item>", "\t\t<view class=\"swiper-item\">$2</view>", "\t</swiper-item>", "\t<swiper-item>", "\t\t<view class=\"swiper-item\">$0</view>", "\t</swiper-item>", "</swiper>" ], "prefix": "uswiper", "project": "uni-app", "scope": "vue-html" }, "uSwipermsg": { "body": [ "<view class=\"uni-swiper-msg\">", "\t<view class=\"uni-swiper-msg-icon\">", "\t\t<image src=\"$1\" mode=\"widthFix\"></image>", "\t</view>", "\t<swiper vertical=\"true\" autoplay=\"true\" circular=\"true\" interval=\"3000\">", "\t\t<swiper-item>", "\t\t\t<navigator>消息1</navigator>", "\t\t</swiper-item>", "\t\t<swiper-item>", "\t\t\t<navigator>消息2</navigator>", "\t\t</swiper-item>", "\t\t<swiper-item>", "\t\t\t<navigator>消息3</navigator>", "\t\t</swiper-item>", "\t</swiper>", "</view>" ], "prefix": "uswipermsg", "project": "uni-app", "scope": "vue-html" }, "uSwitch": { "body": ["<switch checked @change=\"$1\" />"], "prefix": "uswitch", "project": "uni-app", "scope": "vue-html" }, "uTag": { "body": ["<uni-tag text=\"$1\" type=\"$2\"></uni-tag>"], "prefix": "utag", "project": "uni-app", "scope": "vue-html" }, "uTemplate": { "body": ["<template>", "\t<view>$0</view>", "</template>"], "prefix": "utemplate", "project": "uni-app", "scope": "vue-html" }, "uText": { "body": ["<text>$0</text>"], "prefix": "utext", "project": "uni-app", "scope": "vue-html" }, "uTextarea": { "body": ["<textarea value=\"$1\" placeholder=\"$0\" />"], "prefix": "utextarea", "project": "uni-app", "scope": "vue-html" }, "uTimeline": { "body": [ "<view class=\"uni-timeline\">", "\t<view class=\"uni-timeline-item uni-timeline-first-item\">", "\t\t<view class=\"uni-timeline-item-keynode\">日期1$1</view>", "\t\t<view class=\"uni-timeline-item-divider\"></view>", "\t\t<view class=\"uni-timeline-item-content\">事件1</view>", "\t</view>", "\t<view class=\"uni-timeline-item\">", "\t\t<view class=\"uni-timeline-item-keynode\">日期2</view>", "\t\t<view class=\"uni-timeline-item-divider\"></view>", "\t\t<view class=\"uni-timeline-item-content\">事件2</view>", "\t</view>", "\t<view class=\"uni-timeline-item uni-timeline-last-item\">", "\t\t<view class=\"uni-timeline-item-keynode\">日期3</view>", "\t\t<view class=\"uni-timeline-item-divider\"></view>", "\t\t<view class=\"uni-timeline-item-content\">事件3</view>", "\t</view>", "</view>" ], "prefix": "utimeline", "project": "uni-app", "scope": "vue-html" }, "uVideo": { "body": ["<video src=\"$1\" controls></video>"], "prefix": "uvideo", "project": "uni-app", "scope": "vue-html" }, "uView": { "body": ["<view class=\"$1\">$0</view>"], "prefix": "uview", "project": "uni-app", "scope": "vue-html" }, "uWebView": { "body": ["<web-view src=\"$1\"></web-view>"], "prefix": "uwebview", "project": "uni-app", "scope": "vue-html" }, "view for": { "body": [ "<view v-for=\"(item,index) in ${1:dataList}\" :key=\"index\">", "\t$0", "</view>" ], "description": "view带for循环", "prefix": "viewfor", "project": "uni-app", "scope": "vue-html" }, "view_class": { "body": ["<view class=\"$1\">", "\t$0", "</view>"], "prefix": "viewclass", "scope": "vue-html", "triggerAssist": true } }