vue-cli工具-路由&swiper插件&Echarts使用

一、路由(Vue Router)

Vue Router 是 Vue.js (opens new window)官方的路由管理器。包含的功能有:

  • 嵌套的路由/视图表
  • 模块化的、基于组件的路由配置
  • 路由参数、查询、通配符
  • 基于 Vue.js 过渡系统的视图过渡效果
  • 细粒度的导航控制
  • 带有自动激活的 CSS class 的链接
  • HTML5 历史模式或 hash 模式,在 IE9 中自动降级
  • 自定义的滚动条行为

1、安装

       npm install vue-router

2、导入(入口文件main.js中)

      import Vue from 'vue'
      import VueRouter from 'vue-router'
       Vue.use(VueRouter)

3、创建路由器

路由器就是配置路由信息的,所谓路由就是把它当成一个页面的跳转。通过路由器对象配置
(1)创建路由器对象 (在入口文件main.js中)

// 导入页面组件
   import Home from './pages/Home.vue'
   import List from './pages/List.vue'
   const router = new VueRouter({
            // 定义路由信息数组
            routes:[
           // 每一条路由信息,就是一个对象
                   {
                         // 路由路径
                         path:'/home',
                         // 路由名称
                         name:'home',
                         // 路由组件
                         component:Home       //Home是组件名
                    },
            ]
   })

在路由器对象中需要配置跳转页面。(注意:所有页面的每一个页面组件都单独用一个文件夹保存,在src目录中创建一个views或pages文件夹)
src目录中的components和pages都是组件文件夹,前者为业务组件,后者为页面组件
在pages文件夹中添加组件

image.png

当我们在开发项目时,可能会有很多需要跳转的页面,导致入口文件main.js中的代码增多。在开发项目过程中main.js文件要尽可能的小,所以我们要把部分的代码分离出去。
在src目录新建一个文件夹,一般命名为router,然后新建一个文件index.js。将分离出来的代码接收,再导出

// 导入vue库
import Vue from 'vue'
// 导入路由
import VueRouter from 'vue-router'
// 使用路由
Vue.use(VueRouter)
// 导入Home组件
import Home from '../pages/Home.vue'
// 导入List组件
import List from '../pages/List.vue'
// 创建路由器对象
export default new VueRouter({
  // 定义路由信息数组
  routes:[
    // 每一条路由信息,就是一个对象
    {
      // 路由路径
      path:'/home',
      // 路由名称
      name:'home',
      // 路由组件
      component:Home
    },
    {
      // 路由路径
      path:'/list',
      // 路由名称
      name:'list',
      // 路由组件
      component:List
    },
  ]
})

注意:main.js中的代码被分离之后,需要在里面重新导入(一个文件夹中的index.js文件可以省略),文件中的组件地址也需要改动

4、配置路由器

  import router from './router'
  new Vue({
     render: h => h(App),
     // 将路由器对象传给vue实例
     router     // 简写,相当于router:router
   }).$mount('#app')

5、使用路由

(1)路由组件跳转
router-link是路由链接组件,用于跳转路由。通过传入 to 属性指定链接, 即要显示的内容。router-link默认会被渲染成一个 标签。
router-view是路由视图组件,用于呈现路由页面。


(2)编程式路由跳转
编程式路由跳转,可以在跳转之前,做各种验证,比如判断权限等等。
router是当前vue实例里面的路由器对象。
push方法:用于跳转路由,在浏览器的历史记录中,添加一个路由信息。需要注意,不能反复push同一个路由地址。
replace方法:也是用于跳转路由。它用当前地址替换历史记录里面的最近一条地址。



二、swiper插件

1、安装

   npm install swiper@5 vue-awesome-swiper@4

2、导入

(1)全局导入

// 导入swiper
import VueAwesomeSwiper from 'vue-awesome-swiper'
// 导入swiper的样式
import 'swiper/css/swiper.css'
// 因为swiper是插件,所以要use
Vue.use(VueAwesomeSwiper)

(2)局部导入

// 导入swiper的组件
import { Swiper, SwiperSlide } from 'vue-awesome-swiper'
// 导入swiper的样式
import 'swiper/css/swiper.css'
export default {
    // 注册组件
    components: {
        Swiper,
        SwiperSlide
    }
}

3、使用


    
        
    
    
        
    
    
        
    
    
        
    
    
    
data() {
    return {
        // 定义swiper的配置选项
        swiperOptions: {
            // 指定分页器
            pagination: {
                //指定分页器的容器
                el: ".swiper-pagination",
                //点击分页器的指示点分页器会控制Swiper切换
                clickable:true
            },
            // 配置衔接滑动
            loop:true,
            // 配置自动播放
            // autoplay:true
            autoplay:{
                //自动播放
                autoplay:true,
                //设置间隔时间
                delay:3000,
                // 用户操作swiper之后,是否禁止autoplay
                disableOnInteraction:false
            },
            // slide的切换效果
            effect:'coverflow',
            // 箭头
            navigation:{
                nextEl: '.swiper-button-next',
                prevEl: '.swiper-button-prev',
            }
        },
    };
},

三、Echarts使用

1、安装

   npm install echarts --save

2、导入

   import * as echarts from 'echarts';

关闭eslint语法检查

  "eslintConfig": {
    "rules": {
      "no-unused-vars": "off"
    }
  }

3、准备容器

  

使用ECharts

4、选择示例图

官方文档:https://echarts.apache.org/examples/zh/index.html
选择合适的图标下载

image.png

5、引入Echarts

于准备好的dom,初始化echarts实例,绘制图表。因为该项目是基于vue,所以需要在mounted生命周期中进行这一步(获取dom,需要在页面挂载完成后进行)。
(1)折线图示例

import * as echarts from "echarts";
export default {
  name: "List",
  mounted() {
    // 基于准备好的dom,初始化echarts实例
    var myChart = echarts.init(document.getElementById("container"));
    myChart.setOption({
      title: {
        text: 'Stacked Line'
      },
      tooltip: {
        trigger: 'axis'
      },
      legend: {
        data: ['Email', 'Union Ads', 'Video Ads', 'Direct', 'Search Engine']
      },
      grid: {
        left: '3%',
        right: '4%',
        bottom: '3%',
        containLabel: true
      },
      toolbox: {
        feature: {
          saveAsImage: {}
        }
      },
      xAxis: {
        type: 'category',
        boundaryGap: false,
        data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']
      },
      yAxis: {
        type: 'value'
      },
      series: [
         {
          name: 'Email',
          type: 'line',
          stack: 'Total',
          data: [120, 132, 101, 134, 90, 230, 210]
        },
        {
          name: 'Union Ads',
          type: 'line',
          stack: 'Total',
          data: [220, 182, 191, 234, 290, 330, 310]
        },
        {
          name: 'Video Ads',
          type: 'line',
          stack: 'Total',
          data: [150, 232, 201, 154, 190, 330, 410]
        },
        {
          name: 'Direct',
          type: 'line',
          stack: 'Total',
          data: [320, 332, 301, 334, 390, 330, 320]
        },
        {
          name: 'Search Engine',
          type: 'line',
          stack: 'Total',
          data: [820, 932, 901, 934, 1290, 1330, 1320]
        }
      ],
    });
  },
}

实现效果:
image.png

(2)柱状图示例
通过axios获取后台数据。(注意:axios需要先安装,再导入)

// 导入axios
import axios from "axios";
export default {
  name: "Test",
  data() {
    return {
      // 定义一份数据
      list: [],
    };
  },
  methods: {
    // 加载数据的方法
    async getList() {
      // 向后台发送请求,获取一份数据
      let {data} = await axios.get("data/data2.json");
      this.list = data
      this.showdata()
    },   
    // 渲染数据的方法
    showdata() {
      // 基于准备好的dom,初始化echarts实例
      var myChart = echarts.init(document.getElementById("main"));
      // 绘制图表
      myChart.setOption({
        title: {
          text: "产品销售信息",
          // 副标题
          subtext: "2021-12-08",
        },
        // 图例组件
        legend: {},
        tooltip: {},
        // X轴信息
        xAxis: {
          // 产品名称数据作为X轴信息展示
          data: this.list.map((r) => r.title),
        },
        // Y轴信息
        yAxis: {},
        // 系列
        series: [
          {
            name: "销量",
            type: "bar",
            data: this.list.map((r) => r.xl),
          },
          {
            name: "库存",
            type: "bar",
            data: this.list.map((r) => r.kc),
          },
        ],
      });
    },
  },
  // 页面挂载完成
  mounted() {
    this.getList();
  },
};
[
    {
        "title": "衬衫",
        "xl": 5,
        "kc": 9
    },
    {
        "title": "羊毛衫",
        "xl": 20,
        "kc": 19
    },
    {
        "title": "雪纺衫",
        "xl": 36,
        "kc": 55
    },
    {
        "title": "裤子",
        "xl": 10,
        "kc": 2
    },
    {
        "title": "高跟鞋",
        "xl": 10,
        "kc": 5
    },
    {
        "title": "袜子",
        "xl": 20,
        "kc": 35
    }
]

实现效果:
image.png

你可能感兴趣的:(vue-cli工具-路由&swiper插件&Echarts使用)