偶然间看到一款不错的移动端vue组件库Vant,照着官方文档敲了一下,感觉还是不错的。想着以后的项目中可能会运用到,特此记录下,方便之后使用。

  现在很多的组件库为了减小代码包体积,都支持按需加载了。Vant作为一款优秀的移动端vue组件库,自然也是支持的。由于当下手机设备屏幕尺寸不一,做移动端的Web页面,需要考虑安卓/IOS的各种尺寸设备上的兼容,针对移动端设备的页面,设计与前端实现怎样做才能更好地适配不同屏幕宽度的移动设备?因而,在不同尺寸的手机设备上,页面“相对性的达到合理的展示(自适应)”或者“保持统一效果的等比缩放是很有必要的。

  废话不多说,进入正题吧:

  1、假设你已经全局安装了vue脚手架(npm install -g vue-cli)

  2、创建基于webpack模版的新项目:

   vue init webpack vue-demo(其中,vue-demo为项目名)

  3、打开项目,这里以vue-demot为例

   cd vue-demo

  4、安装lib-flexible(它的作用是检测页面是否已有meta[name="viewport"],如果有,将根据已有的meta标签来设置缩放比例,否则会自动在html的head中添加一个meta name="viewport"的标签,同时会自动设置html的font-size为屏幕宽度除以10,也就是1rem等于html根节点的font-size)。

   npm i lib-flexible --save

  5、在main.js中引入lib-flexible

   import 'lib-flexible/flexible'

  6、安装px2rem-loader(用于将px转换为rem的工具)

   npm install px2rem-loader

  7、配置px2rem-loader

// 在build文件中找到util.js,将px2rem-loader添加到cssLoaders中,如:
const px2remLoader = {
loader: 'px2rem-loader',
options: {
remUnit: 37.5 // 这里设置html根字体,通常设置为设计稿宽度的 1/10。vant-UI的官方根字体大小是37.5
}
}

  8、同时,在generateLoaders方法中添加px2remLoader

function generateLoaders (loader, loaderOptions) {
const loaders = options.usePostCSS ? [cssLoader, postcssLoader, px2remLoader] : [cssLoader, px2remLoader]
。。。。
}

  9、安装Vant组件库

   npm i vant -S

  

  10、安装按需引入插件babel-plugin-import

   # 安装插件 npm i babel-plugin-import -D

  11、在babelrc中配置: 

"plugins": [
"transform-vue-jsx",
"transform-runtime",
["import", {
"libraryName": "vant",
"libraryDirectory": "es",
"style": true
}]
],

  

  接下来就可以npm run dev重启项目愉快地玩耍了。

  在main.js中按需加载你需要的组件: 

import {
popup,
Button
} from 'vant';

  使用组件:

Vue.use(popup)
.use(Button);

  页面中就可以这样使用了。

  <van-button type="primary" @click="showPopup">
展示弹出层
</van-button> <van-popup
v-model="show"
round
position="bottom"
:style="{ height: '20%' }"
/>

最新文章

  1. iOS--高级技术
  2. TemplateDataField
  3. 有了malloc/free为什么还要new/delete ?
  4. POJ 1095 Trees Made to Order(卡特兰数列)
  5. .SQL Server中 image类型数据的比较
  6. 疯狂java讲义笔记 2.3.7
  7. Creating Lists and Cards 创建列表和卡片
  8. 引用 RAM和ROM和Flash ROM的区别
  9. 18.如何自我Struts2它Struts2标签和综合汇总文章有点早
  10. Linux平台下裸设备的绑定:
  11. 【2017-03-30】JS-document对象
  12. 如何自己制作CHM电子书?
  13. 从零开始学spring cloud(六) -------- Ribbon
  14. spring中的@Bean是否一定要与@Configuration一起用
  15. optimizer(代码分析)
  16. Spark任务提交底层原理
  17. Flyway的第一次认识
  18. ospf基础理论
  19. Sublime Text - 在浏览器打开当前文件
  20. .net 的page的OnInit方法

热门文章

  1. 洛谷【P1498】:南蛮图腾(分治算法)
  2. Beta冲刺博客汇总(校园帮-追光的人)
  3. python应用-跑马灯
  4. 用数据泵技术实现逻辑备份Oracle 11g R2 数据泵技术详解(expdp impdp)
  5. vector Construct
  6. python-自动登录禅道
  7. 笨方法学python3
  8. AsyncAPI 几个方便的工具
  9. 8.8poc包问题
  10. vue中的scoped分析以及在element-UI和vux中的应用