开发小程序选定了mpvue框架后,然后是选择理想的小程序组件库,我选择的是Vant Weapp。但是,在Vant Weapp组件毕竟也是有限的,实际问题可能复杂得多。因此,把Vant Weapp组件与小程序原生组件(如swiper等)联合使用,甚至是开发自定义组件都是可能的。另一方面,使用Vant Weapp组件类似库的一个好处是,很大情况下,可以不必关注CSS样式的编写,但也不尽然。今天就遇到这样一个问题。
在mpvue框架时,我自然地使用了官方提供的mpvue-quickstart模板来快速生成一个小程序工程框架,然后再作调整。其中,便是使用了vue-cli,但它默认是不支持更简洁功能更强大的LESS和SASS等CSS样式创建的。但是,很显然,有些情况下,直接使用CSS编写,在样式层级多的情况下,很麻烦,重复性强。这也是引入LESS等的主要原因。那么,能够在使用mpvue框架开发小程序的情况下也引入LESS和SASS等工具支持呢?答案是:没有问题!
办法
第一步:安装less和less-loader
所用命令是:
npm i less less-loader -D
第二步:修改一下webpack.base.conf.js:
如图中红框框出的所示:
第三步:使用less语法编写样式即可,举例如下:
<style lang="less">
.card-goods {
padding: 10px 0;
background-color: #fff;
&__item {
position: relative;
background-color: #fafafa;
.van-checkbox__label {
width: 100%;
height: auto; // temp
padding: 0 10px 0 15px;
box-sizing: border-box;
}
.van-checkbox__icon {
top: 50%;
left: 10px;
z-index: 1;
position: absolute;
margin-top: -10px;
}
.van-card__price {
color: #f44;
}
}
}
</style>
小结
定义了上述样式后,可以根据需要应用于Vant Weapp组件上,毕竟有些组件默认样式可能不太合乎实际需求。另外,使用上述思路,也可以在mpvue项目中引入sass样式的使用。有兴趣的读者,可以参考文章https://www.jianshu.com/p/31f78fb9e4ba。