14

Vue + 常用第三方插件 基础使用

一、Vue + element

1、element——>快速入手——>按需引入方式:
(1)、安装element-ui

    //-S等同于:--save
    //i是install的缩写
    npm i element-ui -S

(2)、安装按需加载的依赖

   //-D等同于:--save-dev
   npm install babel-plugin-component -D

(3)、修改.babelrc文件为:

{
  "presets": [
    ["env", {
      "modules": false,
      "targets": {
        "browsers": ["> 1%", "last 2 versions", "not ie <= 8"]
      }
    }],
    "stage-2"
  ],
  "plugins": ["transform-vue-jsx", "transform-runtime",["component", {
    "libraryName": "element-ui",
    "styleLibraryName": "theme-chalk"
  }
  ]]
}

(4)、在main.js中配置

import {  Button } from 'element-ui'
Vue.use(Button)

(5)、组件中使用

<template>
    <div>
      <el-button type="danger">危险按钮</el-button>
    </div> 
</template> 
注意:下图中的element标签属性应设置在标签上,如:
<el-button type="danger" size="small">危险按钮</el-button>

图片描述

二、Vue + swiper
swiper地址:https://github.com/surmon-chi...

(1)、安装:

npm install vue-awesome-swiper --save

(2)、两种引入方式:

① 全局引入方式:在main.js文件中引入

import Vue from 'vue'
import VueAwesomeSwiper from 'vue-awesome-swiper'
import 'swiper/dist/css/swiper.css'

//全局配置swiper
Vue.use(VueAwesomeSwiper)
② 局部引入:组件中引入
import 'swiper/dist/css/swiper.css'
import { swiper, swiperSlide } from 'vue-awesome-swiper'
export default {
  components: {
    swiper,
    swiperSlide
  }
}

(3)、组件中使用
注意:在使用的时候需要参照GitHub和官网的参数配置一起使用,需要什么参数就去官网找即可,就是比较麻烦而已。

<template>
  <div>
    <swiper :options="swiperOption">
      <swiper-slide>I'm Slide 1</swiper-slide>
      <swiper-slide>I'm Slide 2</swiper-slide>
      <swiper-slide>I'm Slide 3</swiper-slide>
      <swiper-slide>I'm Slide 4</swiper-slide>
      <swiper-slide>I'm Slide 5</swiper-slide>
      <swiper-slide>I'm Slide 6</swiper-slide>
      <swiper-slide>I'm Slide 7</swiper-slide>
      <div class="swiper-pagination"  slot="pagination"></div>
    </swiper>
  </div>
</template>

<script>
export default {
  name: 'HelloWorld',
  data () {
    return {
      swiperOption:{
      //这里配置的参数参考官网API设置,这里的pagination就是下图中的官方配置
        pagination: {
          el: '.swiper-pagination',
        }
      }
    }
  }
}
</script>

图片描述

三、Vue + layzload

(1)、安装:

 //-D等同于:--save-dev
 npm install vue-lazyload -D

(2)、在main.js中引入::

import VueLazyload from 'vue-lazyload'
Vue.use(VueLazyload)

(3)、在lazyload.vue组件中:
图片描述

这样图片加载的过程中:先加载loading图片,再加载src路径图片,一旦出现错误将显示error图片。
四、Vue + rem + less

(1)、安装less

npm install less less-loader --save-dev
npm install style-loader css-loader --save-dev

(2)、配置webpack.base.conf.js

{
    test:/\.less$/,
    use:[
      'style-loader',
      'css-loader',
      'less-loader'
    ]
 }

(3)、在index.html文件添加js代码:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width,initial-scale=1.0">
<title>beijing</title>

//自适应屏幕调整相应的font-size值
<script>
  (function(doc,win){
    var docEl = doc.documentElement,
      //orientationchange 屏幕旋转事件
      //首先判断窗口有没有orientationchange这个方法,有就赋值给变量,没有就返回resize方法.
      resizeEvt = 'orientationchange' in window ? 'orientationchange' : 'resize',
      recalc = function (){
        var clientWidth = docEl.clientWidth;
        if(!clientWidth) return;
        if(clientWidth >= 750){
          docEl.style.fontSize = '100px';
        }else{
          docEl.style.fontSize = 40 * (clientWidth / 750) + 'px';
        }
      };
    if(!doc.addEventListener) return;
    win.addEventListener(resizeEvt,recalc,false);
    //浏览器把DOM树构建完成后就触发了DOMContentLoaded事件,load事件则要等包括图片这些加载完毕才会触发;先是DOMContentLoaded发生,然后是load发生。
    doc.addEventListener('DOMContentLoaded',recalc,false)
  })(document,window)
</script>
</head>
<body>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
注意:这样在iPhone6中就得到,<html style="font-size: 20px;"> ,也就是1rem = 20px; 但是,当html设置的font-size小于16px时,它会以1rem = 16px进行计算,因为浏览器能识别的最小值为16px。

(4)、TestFont.vue组件中:

<template>
  <div class="box">
    <p>哈哈</p>
  </div>
</template>
<script>
    export default {
      name: "TestFont",
    }
</script>
<style scoped lang="less">
  //box宽高为:200px*300px,这样直接做除法就可以了
  .box{
    width:200 / 20rem;
    height:300 / 20rem;
    background: #ff0;
  }
</style>

Miss_Ye
1.5k 声望157 粉丝

知识的价值不在于占有,而在于使用!


« 上一篇
javascript
下一篇 »
Vuex 基础总结