Vue中常用的第三方库

2023-11-08

stylus

一种css预处理器,可以更加直观的编写css代码,减少不必要的格式

下载:

npm install stylus

使用:

在style标签中加上 lang="stylus"来使用stylus
样式不再需要大括号,而是用缩进来代替
可以省略冒号,用空格代替
不再需要分号来结尾
在style标签中添加scope属性后,样式只会修饰当前组件。

better-scroll

一个用于提高滑动体验的库,可以让移动端的滑动体验更接近于原生APP

下载:仍然是npm下载或script标签引入,没什么好说的

使用也非常简单:

首先 import BScroll from ‘better-scroll’
this.scroll=new Bscroll(this.$refs.wrapper)//wrapper是被选择的元素,也就是进行滚动的元素,完成绑定即成功使用
绑定成功后,要进行元素跳转时,可以用this.scroll.scrollToElement()的方法,括号内的参数是要跳转到的目标

swipper

用于实现轮播图的插件,类似于这样的:

下载:npm install swiper,或是去官网下载压缩包后引入对应的js文件和css文件

使用:通过一段示例demo来看,这是swipper.vue:

<template  style="touch-action:none;">
    <swiper :options="swiperOption" class=wrapper>
      <swiper-slide v-for="item of swiperList" :key="item.id">
        <img class="swiper-img" v-bind:src="item.imgUrl">
      </swiper-slide>
      <div class="swiper-pagination"  slot="pagination"></div>
      <div class="swiper-button-prev" slot="button-prev"></div>
      <div class="swiper-button-next" slot="button-next"></div>
      <div class="swiper-scrollbar"   slot="scrollbar"></div>
    </swiper>
</template>

<script>
  export default {
    name: 'carrousel',
    props:['swiperList'],
    data () {
      return {
        swiperOption: {
            loop:true,
            pagination:{
                el:'.swiper-pagination',
                clickable:true,
            },
            navigation: {
              nextEl: '.swiper-button-next',
              prevEl: '.swiper-button-prev',
            },
            scrollbar: {
              el: '.swiper-scrollbar',
            },
        }
      }
    }
  }
</script>

swiper标签是整个轮播图的外层父标签,其上绑定了一个配置项swipperOption,在data中定义
swiper-slide标签内部是轮播的图片。可以通过多个swiper-slide标签来定义已知个轮播图片,但仍建议使用v-for的方法进行列表渲染
下面的四个div标签都是可选项,从上到下分别是:分页器(就是图中的小圆点)、上一张按钮、下一张按钮、进度条。
swiperOption的配置方法上面已经给出了示例。注意,这个配置方法随着swiper版本的不同而改变,例如一些老教程中swiperOption的配置方法就已经行不通了。所以如果出现了什么错误,去官网查api即可
以上是最基础的结构,可以给各个组件添加class定制自己想要的样式,或是绑定事件

axios

一个vue官方推荐的基于promise的http库,用于进行数据请求

最常见的使用场景如下:

import axios from 'axios' //首先引入

//发送get请求
axios
      .get('URL')//可以直接在URL中添加参数
      .then(response => (this.info = response))//请求成功
      .catch(function (error) { // 请求失败处理
        console.log(error);
      });

axios
  .get('/user', {// 也可以通过 params 设置参数:
    params: {
      ID: 12345
    }
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

//发送post请求
axios.post('/user', {
    firstName: 'Fred',        // 参数 firstName
    lastName: 'Flintstone'    // 参数 lastName
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

//发送多个并发请求
function getUserAccount() {
  return axios.get('/user/12345');
}
 
function getUserPermissions() {
  return axios.get('/user/12345/permissions');
}
axios.all([getUserAccount(), getUserPermissions()])
  .then(axios.spread(function (acct, perms) {
    // 两个请求现在都执行完成
  }));

//通过向axios传递参数来进行请求

// 发送 POST 请求
axios({
  method: 'post',
  url: '/user/12345',
  data: {
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
});

//  GET 请求远程图片
axios({
  method:'get',
  url:'http://bit.ly/2mTM3nY',
  responseType:'stream'
})
  .then(function(response) {
  response.data.pipe(fs.createWriteStream('ada_lovelace.jpg'))
});

//可以只传入url,发送 GET 请求(默认的方法)
axios('/user/12345');

//相应函数中接收的response对象含有的信息:
{
  // `data` 由服务器提供的响应
  data: {},

  // `status`  HTTP 状态码
  status: 200,

  // `statusText` 来自服务器响应的 HTTP 状态信息
  statusText: "OK",

  // `headers` 服务器响应的头
  headers: {},

  // `config` 是为请求提供的配置信息
  config: {}
}

Vuex

解决非父子组件传值的问题。多用于大型单页应用之中,对于小型项目可能是一种多余的存在

使用:下载并引入Vuex,用Vue.use(Vuex)方法来使用Vuex,并export一个Store实例,实例中有存放数据的state,actions,mutations和getters

Vue.use(Vuex)

export default new Vuex.Store({
    state:{
        city:"bj"
    },
    actions:{
        changeCity(ctx,city){
            ctx.commit('changeCityShowing',city)
        }
    }
    mutations:{
        changeCityShowing(state,city){
            state.city=city;
            try {
                localStorage.city=city;
            } catch (error) {};
        }
    }
    getters:{
        reverse(){
            return state.city.split('').reverse().join("");
        }
    }
})

在需要向外传值的组建中用 this.$store.dispatch(‘事件名’,数据); 的方式将数据传给actions
在actions中定义相同的事件,接收两个参数,在其中将事件继续传递给mutations
在mutations中修改state中的数据,达到修改全局状态的目的
在传递的数据较少较简单时,可以直接从组件中this.$store.commit(‘事件名’,数据);将数据提交到mutations
当要对state中的变量加工后使用时,可以将之映射到计算属性(映射至data中的变量则无法加工),或在getters中定义相关的函数
getters相当于store中的计算属性。可以用mapGetters函数将之映射到局部计算属性

computed:{
    ...mapGetters(['name1',‘name2’])
    //...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Vue中常用的第三方库 的相关文章

随机推荐

  • 主板电源开关接口图解_主板跳线接法示意图,超详细适合DIY新手

    现在DIY自己装机已经很简单了 网上的教程各种各样 也不用专门去电脑城找专业人士来装了 只需要购买好硬件即可 不过 在组装电脑时有一个步骤是很难的 就是主板跳线或者说机箱里面各种线怎么接 下面就给大家说说主板跳线接法 一 开关机跳线和指示灯
  • linux命令总结dd命令详解

    dd 用指定大小的块拷贝一个文件 并在拷贝的同时进行指定的转换 注意 指定数字的地方若以下列字符结尾 则乘以相应的数字 b 512 c 1 k 1024 w 2 参数注释 if 文件名 输入文件名 缺省为标准输入 即指定源文件 lt if
  • Java设计模式-迪米特法则

    迪米特法则 Low Of Demeter 定义 一个对象应该对其他对象保持最少的了解 问题由来 类与类之间的关系越密切 耦合度越大 当一个类发生改变时 对另一个类的影响也越大 解决方案 尽量降低类与类之间的耦合 自从我们接触编程开始 就知道
  • 【LeetCode】—— 二叉树进阶面试题

    一 根据二叉树创建字符串LeetCode606题 1 1 题目描述 空节点则用一对空括号 表示 而且你需要省略所有不影响字符串与原始二叉树之间的一对一映射关系的空括号对 示例 1 输入 二叉树 1 2 3 4 1 2 3 4 输出 1 2
  • 批量插入及数据库事务(三)

    五 批量插入 5 1 批量执行SQL语句 当需要成批插入或者更新记录时 可以采用Java的批量更新机制 这一机制允许多条语句一次性提交给数据库批量处理 通常情况下比单独提交处理更有效率 JDBC的批量处理语句包括下面三个方法 addBatc
  • 算法讲解四之滑动窗口

    文章目录 算法学习篇四 滑动窗口 声明 题目 长度最小的子数组 解法一 解法一思路 解法二 滑动窗口 解法二思路 拓展知识点 1 程序设计中 与 的使用 2 i 与 i的使用区别 说明 算法学习篇四 滑动窗口 声明 本文旨在记录自己学习算法
  • 使用python的selenium自动化登录获取cookie

    要爬取广点通广告平台数据 这平台居然没有提供开发用的API数据接口 登录是QQ登录 很复杂 不好抓取登录接口逻辑 于是就用这个 想录gif的不好录 文档 https www yiibai com selenium selenium webd
  • xgboost特征选择

    Xgboost在各大数据挖掘比赛中是一个大杀器 往往可以取得比其他各种机器学习算法更好的效果 数据预处理 特征工程 调参对Xgboost的效果有着非常重要的影响 这里介绍一下运用xgboost的特征选择 运用xgboost的特征选择可以筛选
  • 微信小程序带参扫码跳转以及测试方法

    前言 最近在做小程序开发时 遇到的一个比较基础性的问题吧 觉得有记录的必要 第一是加深自己的影响 第二也方便跟我一样遇到这种问题的朋友做一个方法参考 参数及跳转页面约定 这里的参数是你与后端沟通好的 约定的要返回的内容 这里因为项目业务需要
  • Grafana初步总结

    1 grafana安装及问题解决 在官网下载安装包 解压后进入bin目录双击 grafana server exe启动服务 服务启动成功默认端口3000 在浏览器输入http localhost 3000 回车进入登录界面 初始账号密码为
  • mySql 将一行数据拆分为多条数据原理解析

    先上sql语句 select distinct SUBSTRING INDEX SUBSTRING INDEX a beam type b help topic id 1 1 name from fab process tech test
  • vue element ui 表格带分页全选情况

    vue element ui 表格带分页全选情况 1 效果 2 原理 我们真实的情况 选择一条或者多条 将选择的id拼接成一个id数组传给后端 但是问题 如果数据过多的话 全选加入有4 5W条数据传递起来很费力而且可能会出错 和后端商量 当
  • Android x86开源项目虚拟机镜像下载(VM/Vbox)

    Android x86 开源项目可以让我们在虚拟机中直接运行Android系统 这里的x86指的是平台架构非32位版 如果你曾经查找过VMware 虚拟机安装 Android 的教程 应该了解直接安装的话设置和磁盘操作比较麻烦 对于很多新手
  • Segmentation简记3-UPSNet: A Unified Panoptic Segmentation Network

    Segmentation简记3 UPSNet A Unified Panoptic Segmentation Network 创新点 总结 实验 创新点 1 统一的全景分割网络 总结 uber的作品 网络结构如下 还是比较简洁的 Backb
  • leetcode剑指offer11—旋转数组的最小值(二分/边界值)

    把一个数组最开始的若干个元素搬到数组的末尾 我们称之为数组的旋转 给你一个可能存在 重复 元素值的数组 numbers 它原来是一个升序排列的数组 并按上述情形进行了一次旋转 请返回旋转数组的最小元素 例如 数组 3 4 5 1 2 为 1
  • C语言函数大全--e开头的函数

    e开头的函数 1 ecvt 1 1 函数说明 1 2 演示示例 1 3 运行结果 2 ellipse 2 1 函数说明 2 2 演示示例 2 3 运行结果 3 eof 3 1 函数说明 3 2 演示示例 3 3 运行结果 4 execl 4
  • java方法传参机制

    核心思想 java传参只能按值调用 方法不可能修改基本数据类型的参数 方法可以改变对象参数的状态 即可以改变对象的属性 但是不可能改变对象的引用 方法不可能让一个对象参数引用一个新的对象 8 21 java方法传参机制 核心思想 1 jav
  • Zabbix的邮件报警配置

    Zabbix的邮件报警配置 一 进入报警媒介 二 创建媒体类型 三 测试邮箱配置是否正确 四 关联报警媒介到用户 五 配置动作 六 配置报警媒介的信息模板 七 报警邮件测试 一 进入报警媒介 二 创建媒体类型 三 测试邮箱配置是否正确
  • 【vue3】使用vite构建vue3项目

    gt 博主 初映CY的前说 前端领域 本文核心 使用vite构建vue3项目 前言 当我们选择了vue3作为我们项目的开发 就更加的推荐使用vite来对我们的项目进行打包 很简单 这也是开发vue的团队开发的工具 因此支持性肯定比传统的打包
  • Vue中常用的第三方库

    stylus 一种css预处理器 可以更加直观的编写css代码 减少不必要的格式 下载 npm install stylus 使用 在style标签中加上 lang stylus 来使用stylus 样式不再需要大括号 而是用缩进来代替 可