vant使用

Npm操作:

创建vue项目:vue create 项目名称

手动配置特性:Manually select features

选择Babel和Choose Vue version

选择vue版本

文件放在单独的配置文件还是package.json

是否保存配置作为未来的项目

Rem适配:

进阶用法 - Vant 3 (youzan.github.io)里面有浏览器适配

Postcss-pxtorem:GitHub - cuth/postcss-pxtorem: Convert pixel units to rem (root em) units using PostCSS

安装:npm install postcss postcss-pxtorem --save-dev

在package.json同级目录中新建一个postcss.config.js文件,粘贴以下内容

module.exports = {

  plugins: {

    'postcss-pxtorem': {

      // 设置根元素字体大小,根据设计图设置 ,假设设计图是750,此处就设置75,假设设计图是1080,此处就设置108

      rootValue: 75,

      // propList里面写的是可以从px更改到rem的属性,*就是通配符

      propList: ['*'],

      // 排除node_modules目录下的所有文件

      exclude:/node_modules/i,

      // 过滤掉vant-开头的元素选择器,不会对vant组件进行修改了

      // .my-开头的类选择器也过滤掉

      selectorBlackList:['vant-','.my-'],

    },

  },

};

Lib-flexible:GitHub - amfe/lib-flexible: 可伸缩布局方案

安装:npm i -S amfe-flexible

在你public文件夹下的index.html中用以下代码

<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, minimum-scale=1, user-scalable=no">

替换掉

<meta name="viewport" content="width=device-width,initial-scale=1.0">

在main.js文件中导入

// h5rem适配

import 'amfe-flexible/index.js'

// 也可以写成:import 'amfe-flexible'

注意:如果样式是行内样式,那么px不会更改为rem

Vant定制主题

Vantdemo:vuecli3的示例工程,GitHub - youzan/vant-demo: Collection of vant demos.

安装并使用vant

用快速上手中,安装vant的指令安装Vant

Vant 2 - 轻量、可靠的移动端组件库 (youzan.github.io)

引入组件的方式:

全局导入组件:将代码写在在main.js中

局部导入组件,将代码写在对应的vue文件内,并将Vue.use(组件名)去掉,在components中注册该组件,components: {[组件名.name]: 组件名}

方式一:导入所有组件:

注意:并不推荐,因为引入所有代码包的话会增加代码的体积

在main.js文件中粘贴下列代码:

import Vant from 'vant';

import 'vant/lib/index.css';

Vue.use(Vant);

接下来就能在vue文件中使用组件了

方式二:手动按需引入组件:

在main.js文件中引入以下代码:

注意:将所要导入的文件依次引入,其他组件也是一样的,只需要更改一下样式

全局引入组件:

import Button from 'vant/lib/button';

import 'vant/lib/button/style';

Vue.use(Button)

 

import Calendar from 'vant/lib/calendar';

import 'vant/lib/calendar/style';

Vue.use(Calendar)

import Cell from 'vant/lib/cell';

import 'vant/lib/cell/style';

Vue.use(Cell)

局部引入组件:

import Button from 'vant/lib/button';

import 'vant/lib/button/style';

 

import Calendar from 'vant/lib/calendar';

import 'vant/lib/calendar/style';

import Cell from 'vant/lib/cell';

import 'vant/lib/cell/style';

去掉Vue.use()并在components中添加以下代码

  components: {

    [Button.name]:Button,

    [Calendar.name]:Calendar,

    [Cell.name]:Cell,

  },

方式三:自动按需引入

需要安装插件babel-plugin-import 

安装:npm i babel-plugin-import -D

在你的babel.config.js文件内的module.exports中添加以下代码

  plugins: [

    ['import', {

      libraryName: 'vant',

      libraryDirectory: 'es',

      style: true

    }, 'vant']

  ]

接下来在你的main.js文件内导入组件

全局导入组件

import { Button } from 'vant'

Vue.use(Button)

import { Calendar } from 'vant'

Vue.use(Calendar)

import { Cell } from 'vant'

Vue.use(Cell)

局部导入组件

import { Button,Calendar,Cell } from 'vant'

  components :{

    [Button.name]:Button,

    [Calendar.name]:Calendar,

[Cell.name]:Cell,

},

Vant定制主题样式:

安装Less:npm install -–save-dev less less-loader

具体配置:定制主题,样式变量,配置文件

定制方法:

步骤一:引入样式源文件

手动引入:

引入全部样式:import 'vant/lib/index.less';

引入单个组件样式: import 'vant/lib/button/style/less';

按需引入:在babel.config.js中配置按需引入样式源文件,注意babel6不支持按需引入样式,在babel.config.js中的代码如下,只需要将原有的style:true替换成style:(name)=>`${name}/style/less`就行了

module.exports = { plugins: [ [ 'import', { libraryName: 'vant', libraryDirectory: 'es', // 指定样式路径 style: (name) => `${name}/style/less`, }, 'vant', ], ], };

步骤二:修改样式变量

如果 vue-cli 搭建的项目,可以在 vue.config.js 中进行配置。以下部分为代码:

// vue.config.js

module.exports = {

  css: {

    loaderOptions: {

      less: {

        // 若 less-loader 版本小于 6.0,请移除 lessOptions 这一级,直接配置选项。

        lessOptions: {

          modifyVars: {

            // 直接覆盖变量

注意:此处需要按照配置文件中的样式修改,如果引入的是全部样式或者是按需引入,那么所有的组件内的同一样式都会被修改,如果引入的是单个组件样式,那么只有这个组件内的样式会被修改。例如源文件中的样式白色@white: #fff;你想将原本是白色的地方改为黑色,则在此处写:white: #000‘,变量名如果有-需要用引号包裹,否则就不需要包裹

            'text-color': '#111',

            'border-color': '#eee',

            // 或者可以通过 less 文件覆盖(文件路径为绝对路径)

注意:在你的src目录下,新建一个styles文件,在其内部新建less文件,注意在你的less文件中修改样式时,变量名前需要用@,变量名和变量值都不需要引号包裹,用分号分隔,由于导入的时候需要的是绝对路径,所以我们在vue,config.js中需要使用path模块,const path = require(‘path’)

const 自定义名称= path.resolve(__dirname,’./src/styles/文件名.less’)__dirname表示当前目录,即为项目的根目录,然后将hack: `true; @import "your-less-file-path.less";`,替换成hack: `true; @import "${自定义名称}";`,

            hack: `true; @import "your-less-file-path.less";`,

          },

        },

      },

    },

  },

};

容易报错:

执行  npm install --save less less-loader

安装完less 后 ,在style 中使用less 时会报error

这种情况是less-loader版本过高引起的,可以在package.json 中查看当前less 的版本

所以针对这种情况我们可以先把现有的less-loader 卸载掉,然后去安装低版本的less-loader

npm uninstall less-loader(卸载当前less-loader)

npm install less-loader@4.1.0 –save

scoped代表只在当前组件中生效

lang='less'表示使用了less

浏览器适配

在vue项目中,使用autoprefixer为项目中的css自动添加浏览器前缀,autoprefixer是postcss的一款插件,要先安装postcss-pxtorem

安装插件: 

npm install postcss postcss-pxtorem --save-dev

npm install --save-dev autoprefixer

安装好后,在package.json同一层目录下创建postcss.config.js文件,并在postcss.config.js中添加以下代码:

module.exports = {

  plugins: {

    "autoprefixer":{

      "overrideBrowserslist":[

        "ie >= 8",//兼容ie7以上的浏览器

        "Firefox >= 3.5",//兼容火狐版本号大于3.5的浏览器

        "chrome >= 3.5",//兼容谷歌版本号大于35的浏览器

        "opera >= 11.5",//兼容欧朋版本号大于11.5的浏览器

        // 注意:以上兼容只适用于PC端开发,如果做的是移动端项目,你可以在vant官网,进阶用法中,找到rem布局适配,用以下代码

        // 'Android >= 4.0',

        // 'ios >= 8'

// 来替换以上适配

      ]

    },

    "postcss-pxtorem":{

      rootValue:75,//设置root元素的字体大小,值为移动端页面宽度/10

      propList:['*'],//可以设置px更改到rem的属性

      selectorBlackList:['van-','.my-'],//过滤掉van-开头的元素选择器和.my-开头的类选择器

      exclude:/node_modules/i,//排除node_modules目录及目录下的文件

    }

  }

}

容易报错

postcss-pxtorem版本过高

运行报错 Error: PostCSS plugin postcss-pxtorem requires PostCSS 8.

npm i postcss-pxtorem@5.1.1

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值