使用VSC从零开始Vue.js——备赛笔记——2024全国职业院校技能大赛“大数据应用开发”赛项——任务3:数据可视化

news2024/11/24 15:05:43

使用Visual Studio Code(VSC)进行Vue开发非常方便,下面是一些基本步骤:

一、下载和安装Vue

官网下载地址Download | Node.js

          Vue.js是基于Node.js的,所以首先需要安装Node.js,官网下载地址:Node.js (nodejs.org)icon-default.png?t=N7T8https://nodejs.org/en
 

选择适合自己的版本,推荐LTS,长久稳定版本。 我这里选择的是Windows Installer(.msi) 64-bit

下载好后,双击下载的安装包,并按照说明进行安装。

Finish

安装完成后,检查一下是否安装成功。

打开cmd,输入如下指令:

node -v
npm -v

输出了版本号就说明安装成功了。

安装后的完整目录:

二、创建全局安装目录和缓存日志目录


在我们的安装目录下,创建名为node_cache和node_global的两个文件夹。

打开DOS窗口,执行如下命令,将npm的全局模块目录和缓存目录配置到我们刚才创建的那两个目录。(DOS窗口——命令指示符窗口)

npm config set prefix “你的安装目录\node_global”

npm config set prefix D:\Users\ZhiYilang\AppData\node_global

npm config set cache “你的安装目录\node_cache”

npm config set cache D:\Users\ZhiYilang\AppData\node_cache

为了以后下载包快速,修改源为淘宝镜像。(这里修改了,我们就不需要安装cnpm了,因为cnpm就是**Node.js淘宝镜像加速器,**这里配置了就不需要安装了)

npm config set registry https://registry.npm.taobao.org

查看npm配置修改是否成功

npm config list

同时我们会发现多了个文件:C:\Users\用户名\下的.npmrc文件,可以理解为一个记录当前用户修改信息的配置文件。如果你把这个文件删了,那你刚刚修改的那些参数全没有了,回归默认配置。

三、配置环境变量


在安装过程中,自动配置了两个环境变量一个是环境变量—用户变量—Path里面的C:\Users\你的用户名\AppData\Roaming\npm另一个是环境变量—系统变量—Path里面的软件安装目录,我们需要增加和修改一下。

1.环境变量—用户变量—选中Path—点编辑

将 C:\Users\你的用户名\AppData\Roaming\npm 修改为 你的安装目录\node_global

2. 环境变量—系统变量—新建

变量名:NODE_PATH

变量值:你的安装目录\node_global\node_modules

注:这里的node_modules目录是还没有的,但是我们等会把模块安装到全局目录下就会自动生成这个文件夹。

记得在系统变量—Path添加上%NODE_PATH%

四、安装vue

1. 安装vue.js

          Vue CLI是一个用于快速搭建Vue项目的脚手架工具。在安装Node.js后,打开终端或命令提              示符,运行以下命令来全局安装Vue CLI:

npm install -g @vue/cli

其中-g是全局安装,指安装到global全局目录去,如果不加-g,模块就会安装到当前路径下的node_modules文件夹下,没有目录则自动创建。

如果出现了这个问题,是因为当前用户没有这个权限。

网上有些方法是删除C:\Users\用户名\下的.npmrc文件,万万不可这样,因为那个文件删除了,我们前面修改的全局模块目录和缓存目录配置就没了!!!到时候vue包就下载到C:\Users\你的用户名\AppData\Roaming\npm去了,也就是默认的地方去了,那我们前面修改就没意义了。

正确的打开方式是,用管理员身份运行呗!

Win + s 搜索 “命令提示符”,右键以管理员身份运行。
npm install vue -g

2. 安装webpack模板

npm install webpack -g

此外,在webpack 4x以上,webpack将命令相关的内容都放到了webpack-cli,所以还需要安装webpack-cli

npm install webpack-cli -g

输入 webpack -v,能输出版本号就说明都安装好了。

3. 安装脚手架vue-cli

npm install vue-cli -g

输入vue --version,能输出版本号就说明安装好了。

4. 安装vue-router

npm install vue-router -g

都弄好了我们打开我们自定义的全局模块目录下的node_modules文件夹,会发现安装的模块都统一在这里。

五、任务3只有1个题,共计15分。
14、编写Vue工程代码,根据提供的ds_db01数据库中sku_info表中的前5条数据,用柱状图展示spu_id和price。将结果截图粘贴至答案表.docx中对应的任务序号下。

为了完成这个任务,你需要按照以下步骤进行操作:

  1. 安装Vue.js:确保你已经安装了Vue.js,并且了解如何创建一个新的Vue项目。

  2. 创建Vue项目:使用Vue CLI创建一个新的Vue项目。你可以在命令行中输入以下命令来安装Vue CLI(如果你还没有安装):

bash复制代码


	npm install -g @vue/cli

然后

出现报错:npm ERR! path D:\...很多的WARN跟ERROR

错误原因:

可能是由于之前安装过vue或者其他相关的软件包,导致冲突的文件没有被正确删除

解决方法:

使用下面命令安装且覆盖原来存在的文件

npm install -g @vue/cli --force

使用以下命令创建一个新的Vue项目:

js复制代码

vue create sku-info-chart

使用↑↓按键操作,>指向的为选中的

然后输入:回车

然后会让你选择是使用默认(default)选择安装vue3还是vue2,还是手动(Manually)。根据自己需求选择,我这里选择安装的vue3。

  1. 安装依赖:进入你的Vue项目目录,并安装所需的依赖。在这个例子中,我们将使用axios来从数据库中获取数据,以及Chart.js来创建柱状图。你可以使用以下命令安装这些依赖:

 

bash复制代码

cd sku-info-chart 
npm install axios chart.js

  1. 编写Vue组件:创建一个新的Vue组件,用于显示柱状图。你可以在src/components目录下创建一个名为SkuInfoChart.vue的文件。

2.从数据库获取数据:使用axios从数据库中获取sku_info表的前5条数据。你可以在Vue组件的mounted生命周期钩子中完成这个操作。确保将获取的数据保存到组件的data属性中。

(需要从数据库获取数据并在Vue组件中显示柱状图,你需要完成以下几个步骤:

(1)安装axios库:首先,你需要在你的项目中安装axios库。你可以通过运行npm install axios命令来安装它。

npm install axios

(2)创建后端API:你需要创建一个后端API来提供数据。这个API应该从数据库中获取数据,并将其作为JSON响应返回。你可以使用任何后端框架(如Node.js、Django、Flask等)来创建这个API。(

(3)在Vue组件中获取数据:在Vue组件的mounted生命周期钩子中,你可以使用axios库来发送HTTP请求到后端API,并获取数据。你可以将获取的数据保存到组件的data属性中。

(4)创建柱状图:使用Chart.js库在Vue组件中创建一个柱状图。你可以在模板中使用<canvas>元素来绘制图表,并在mounted生命周期钩子中初始化图表。

(5)渲染图表:在Vue组件的模板中使用图表元素来渲染柱状图。确保将正确的数据传递给图表。)

3.创建柱状图:使用Chart.js在Vue组件中创建一个柱状图。你可以在模板中使用<canvas>元素来绘制图表,并在mounted生命周期钩子中初始化图表。

4.渲染图表:在Vue组件的模板中使用图表元素来渲染柱状图。确保将正确的数据传递给图表。

5.截图并粘贴到答案表中:在浏览器中打开你的Vue应用,并找到柱状图的显示区域。使用浏览器的截图功能将柱状图截图下来,然后将其粘贴到答案表.docx文件的对应任务序号下。

下面是一个简单的示例代码,演示了如何完成上述步骤:

vue复制代码

<template>  
  <div>  
    <canvas id="chart"></canvas>  
  </div>  
</template>  
  
<script>  
import axios from 'axios';  
import { Chart } from 'chart.js';  
  
export default {  
  name: 'SkuInfoChart',  
  data() {  
    return {  
      skuData: [], // 用于保存从数据库获取的数据  
      chart: null, // 用于保存图表实例  
    };  
  },  
  mounted() {  
    this.fetchData(); // 在组件挂载后获取数据  
    this.initChart(); // 初始化图表  
  },  
  methods: {  
    fetchData() {  
      // 使用axios从数据库中获取sku_info表的前5条数据  
      axios.get('your_database_url/sku_info')  
        .then(response => {  
          this.skuData = response.data.slice(0, 5); // 获取前5条数据  
        })  
        .catch(error => {  
          console.error('Error fetching data:', error);  
        });  
    },  
    initChart() {  
      // 初始化图表,并设置正确的数据和配置选项  
      const ctx = document.getElementById('chart').getContext('2d');  
      this.chart = new Chart(ctx, {  
        type: 'bar',  
        data: {  
          labels: this.skuData.map(item => item.spu_id), // 设置x轴标签为spu_id  
          datasets: [{  
            data: this.skuData.map(item => item.price), // 设置y轴数据为price  
            backgroundColor: 'rgba(75, 192, 192, 0.2)', // 设置背景颜色为半透明绿色  
            borderColor: 'rgba(75, 192, 192, 1)', // 设置边框颜色为绿色实线  
            borderWidth: 1, // 设置边框宽度为1像素  
          }],  
        },  
        options: { // 设置图表配置选项,例如标题、坐标轴等  
          title: {  
            display: true, // 显示标题栏,标题为“价格柱状图”或类似信息  
            text: '价格柱状图', // 设置标题文本内容为“价格柱状图”或类似信息  
          },  
          scales: { // 设置x轴和y轴的配置选项,例如刻度、标签等  
            xAxes: [{ // 设置x轴的配置选项,例如刻度、标签等  
              scaleLabel: { // 设置x轴刻

上面的代码有问题

(对不起,我之前的回答中可能有些误导。在Vue.js中,我们不会直接从数据库获取数据,而是通过后端API。Vue.js是一个前端框架,它运行在用户的浏览器上,无法直接连接到数据库。后端服务器(比如Node.js, Django, Flask, Ruby on Rails等)会处理与数据库的交互,并提供API供前端使用。)

正确步骤:

  • 安装必要的依赖:我们需要安装Vue.js和一些用于创建柱状图的库,比如Chart.js。如果你还没有安装它们,可以通过以下命令来安装:
  • npm install vue  
    
  • npm install chart.js
  • 创建Vue应用:创建一个新的Vue应用,你可以通过Vue CLI来快速创建一个新的项目。在你的命令行中运行以下命令:
  • vue create sku-info-chart
  • 我选择覆盖了上面的文件,
  • 这词选第三个(Manually),可以自定义
    Vue CLI v5.0.8
    ? Please pick a preset: Manually select features
    ? Check the features needed for your project: (Press <space> to select, <a> to toggle all, <i> to invert selection, and
    <enter> to proceed)
    
    >(*) Babel
     ( ) TypeScript
     ( ) Progressive Web App (PWA) Support
     ( ) Router
     ( ) Vuex
     ( ) CSS Pre-processors
     ( ) Linter / Formatter
     ( ) Unit Testing
     ( ) E2E Testing
    

  • 按空格选择所需要的,初学选Babel和CSS Pre-processors
    Linter/Formatter一般是与人合作写大的项目才需要(这里我保险起见,全选了)
Vue CLI v5.0.8
? Please pick a preset: Manually select features
? Check the features needed for your project: Babel, CSS Pre-processors
? Choose a version of Vue.js that you want to start the project with (Use arrow keys)

> 3.x
  2.x
  • 选vue版本,用什么选什么(我选择的3.x)
  • 这里我全选的"Yes"
  •  Save this as a preset for future projects? Yes
    ? Save preset as: master
  • 配置后端API:在Vue应用中,你可以使用axios来发送HTTP请求。首先,你需要安装axios:
  • npm install axios

       

       

要在Vue工程中连接数据库,你需要执行以下步骤。由于你没有明确指出你想连接哪种数据库,我将以连接MySQL和MongoDB为例进行说明。

  1. 安装数据库驱动或库

    • 对于MySQL,你可以使用mysqlmysql2库。
    • 对于MongoDB,你可以使用mongodb库。

使用npm或yarn安装相应的库:

npm install mysql2  
# 或  
npm install mysql  
  
# 对于MongoDB  
npm install mongodb

Vue工程中连接到数据库

  • MySQL

在Vue组件或服务中:

javascript`import mysql from 'mysql2';  
  
const connection = mysql.createConnection({  
  host: 'ds_db01.example.com', // 你的数据库服务器地址  
  user: 'root', // 你的数据库用户名  
  password: '1234', // 你的数据库密码  
  database: 'ds_db01' // 你的数据库名称  
});  
  
connection.connect((err) => {  
  if (err) throw err;  
  console.log('Connected to the MySQL server.');  
});`
  • MongoDB

在你的Vue组件或服务中:

javascript`import MongoClient from 'mongodb';  
  
const uri = 'mongodb://ds_db01.example.com:27017'; // 你的MongoDB服务器地址和端口号  
const client = new MongoClient(uri);  
  
client.connect(function(err) {  
  if (err) throw err;  
  console.log('Connected to MongoDB.');  
});`  
```注意:在实际生产环境中,你应该考虑使用环境变量来存储敏感信息,如数据库连接信息,而不是直接在代码中硬编码。此外,确保你处理了任何可能的错误,并适当地关闭了连接。

我们需要使用一个Vue.js的库来处理数据可视化,比如ECharts。首先,我们需要安装必要的依赖:

npm install vue-echarts echarts --save

然后,在Vue组件中,可以编写以下代码:

<template>  
  <div id="chart" style="width: 600px;height:400px;"></div>  
</template>  
  
<script>  
import echarts from 'echarts'  
import { use } from 'echarts/core'  
import { CanvasRenderer } from 'echarts/renderers'  
import { BarChart } from 'echarts/charts'  
import {  
  TitleComponent,  
  TooltipComponent,  
  GridComponent,  
  LegendComponent,  
  xAxisComponent,  
  yAxisComponent,  
  SeriesComponent,  
  DataZoomComponent,  
} from 'echarts/components'  
import { SkuInfo } from './sku_info' // 假设你有一个SkuInfo的数据源,它是一个对象数组  
  
use([  
  CanvasRenderer,  
  BarChart,  
  TitleComponent,  
  TooltipComponent,  
  GridComponent,  
  LegendComponent,  
  xAxisComponent,  
  yAxisComponent,  
  SeriesComponent,  
  DataZoomComponent,  
])  
  
export default {  
  data() {  
    return { chart: null }  
  },  
  mounted() {  
    this.chart = echarts.init(document.getElementById('chart'))  
    this.chart.setOption(this.getOption(SkuInfo)) // 假设SkuInfo是你的数据源,它是一个对象数组  
  },  
  methods: {  
    getOption(data) {  
      return {  
        tooltip: { trigger: 'axis', axisPointer: { type: 'shadow' } }, // 提示框类型 默认数据轴触发悬停,同时支持鼠标移动到数据项上触发悬停; 可配置默认的悬停位置的调整 默认:'axis'; 可选:'item'、'shadow'; 默认:{ type: 'shadow' }。 类型说明:{ type: 'shadow' }表示数据轴默认的提示框类型,可根据实际需求设置成其他类型;{ triggerOn: 'axis' }表示数据轴触发悬停,同时支持鼠标移动到数据项上触发悬停。 默认为:{ triggerOn: 'axis', type: 'shadow' }。提示框默认显示触发点的值; 提示框位置默认跟随鼠标移动。 可配置默认的悬停位置进行调整。 默认为:{ type: 'shadow' }。提示框默认显示触发点的值; 提示框位置默认跟随鼠标移动。 可配置默认的悬停位置进行调整。 默认为:{ triggerOn: 'axis', type: 'shadow', axisPointer: { type: 'shadow' } }。提示框默认显示触发点的值; 提示框位置默认跟随鼠标移动。 可配置默认的悬停位置进行调整。 默认为:{ triggerOn: 'axis', type: 'shadow', axisPointer: { type: 'shadow' } }。提示框默认显示触发点的值; 提示框位置默认跟随鼠标移动。 可配置默认的悬停位置进行调整。 默认为:{ triggerOn: 'axis', type: 'shadow', axisPointer: { type: 'shadow' } }。提示框默认显示触发点的值; 提示框位置默认跟随鼠标移动。 可配置默认的悬停位置进行调整。 默认为:{ triggerOn: 'axis', type: 'shadow', axisPointer: { type: 'shadow' } }。提示框默认显示触发点的值; 提示框位置默认跟随鼠标移动。 可配置默认的悬停位置进行调整。 默认为:{ triggerOn: 'axis', type: 'shadow', axisPointer: { type: 'shadow' } }。提示框默认显示触发点的值; 提示框位置默认跟随鼠标移动。 可配置默认的悬停位置进行调整。 默认为:{ triggerOn: 'axis', type: 'shadow', axisPointer: { type: 'shadow' } }。提示框默认显示触发点的值; 提示框位置默认跟随鼠标移动。 可配置默认的悬停位置进行调整。 默认为:{ triggerOn: 'axis', type: 'shadow', axisPointer: { type: 'shadow' } }。提示框默认显示触发点的值; 提示框位置默认跟随鼠标移动。 可配置默认的悬停位置进行调整。 默认为:{ triggerOn: 'axis', type: 'shadow', axisPointer: { type: 'shadow' } }。提示框默认显示触发

安装所需库: 首先,确保你已经安装了mysql库来连接数据库。 安装axios用于HTTP请求。 安装chart.js用于绘制图表。

要安装这些库,你可以使用npm(Node Package Manager)或yarn,这是两个常用的JavaScript包管理器。以下是使用npm进行安装的命令:

npm install mysql axios chart.js

或者,如果你使用yarn,可以使用以下命令:

yarn add mysql axios chart.js

这些命令将安装所需的库,你可以在Vue组件中使用它们。

要使用Node.js和Vue来根据ds_db01.sql数据库中的sku_info表中的前5条数据创建柱状图,你需要执行以下步骤:

  1. 安装必要的依赖:

首先,确保你已经安装了Node.js和Vue CLI。然后,在你的项目目录中执行以下命令来安装所需的依赖:

npm install axios chart.js

     2. 创建Vue应用程序:

使用Vue CLI创建一个新的Vue应用程序:

vue create my-app

进入新创建的应用程序目录:

cd my-app

     

3.安装并配置Vue Router(如果需要):

根据需求,可能需要使用Vue Router来处理路由,可以使用以下命令安装并配置Vue Router:

vue add router

     

4.创建一个新的Vue组件来展示柱状图:

src/components目录下创建一个新的组件,例如BarChart.vue。然后,将以下代码添加到该文件中:

<template>  
  <div>  
    <canvas id="myChart"></canvas>  
  </div>  
</template>  
  
<script>  
import axios from 'axios';  
import { Chart } from 'chart.js';  
  
export default {  
  data() {  
    return {  
      chartData: null,  
      chart: null,  
    };  
  },  
  mounted() {  
    this.fetchData();  
  },  
  methods: {  
    async fetchData() {  
      try {  
        const response = await axios.get('/api/get_sku_info'); // 假设你的API端点是/api/get_sku_info,用于获取前5条sku_info数据  
        this.chartData = response.data; // 假设服务器返回的数据是{ data: [...] }格式的JSON对象,其中包含前5条记录的数据,每个项目有spu_id和price字段。  
        this.createChart(); // 创建柱状图  
      } catch (error) {  
        console.error('Error fetching data:', error);  
      }  
    },  
    async createChart() {  
      const ctx = document.getElementById('myChart').getContext('2d'); // 获取画布的上下文对象  
      this.chart = new Chart(ctx, { // 创建柱状图实例并设置参数  
        type: 'bar', // 类型为柱状图  
        data: { // 设置数据源和标签数组,这里使用之前获取到的数据作为数据源,每个数据项包含spu_id和price属性,以及对应的标签名称(spu_id)作为标签数组的元素。如果返回的数据不是这种格式,请根据实际情况调整。  
          labels: this.chartData.map(item => item.spu_id), // 使用查询结果的spu_id作为标签数组的元素。这里假设每个数据项都有一个spu_id属性。如果返回的数据不是这种格式,请根据实际情况调整。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1327606.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PMP项目管理 - 范围管理

系列文章目录 系统架构设计 PMP项目管理 - 整合管理 PMP项目管理 - 质量管理 PMP项目管理 - 采购管理 PMP项目管理 - 资源管理 PMP项目管理 - 风险管理 PMP项目管理 - 沟通管理 现在的一切都是为将来的梦想编织翅膀&#xff0c;让梦想在现实中展翅高飞。 Now everything is …

快速搭建Grafana Promethus 服务器监控系统

该文参考文章&#xff0c;其中又遇到一些问题&#xff0c;并解决&#xff0c;当前主要为了记录一下 探针 Grafana Prometheus 之比 Docker 更简单的部署流程 - 承飞之咎本文重在 Grafana Prometheus 探针 方案的部署流程&#xff0c;介绍和更多使用请到&#xff1a;探针 ̵……

【12.20】转行小白历险记 登录+注册页

一、登录注册页面逻辑 写样式布局&#xff1a;垂直居中、编程式路由、调后端接口正则表达式验证用户输入的密码规则校验通过后&#xff0c;跳转页面js兜底校验调后端接口将token值存储到vuex中&#xff0c;实现持久化存储 vuex不是持久化存储的&#xff0c;如果需要持久化存储…

当下流行的直播技术demo演示

nginx-http-flv-module&#xff08;更新不是很频繁&#xff09; SRS: https://ossrs.net/lts/zh-cn/&#xff08;独立官网&#xff0c;目前最新稳定版version5&#xff09; 基于SRS搭建直播demo演示&#xff1a; 一、搭建流媒体服务器 参见官网&#xff1a;https://ossrs.ne…

Windows 如何在局域网中建立NTP服务器实现时间同步(设置一台设备作为主机,其他设备作为从机来同步时间)

首先简单了解一下什么是NTP 网络时间协议(NTP)是一种用于同步计算机网络上各设备时间的协议。NTP时间同步在许多项目和应用中都是关键的&#xff0c;特别是那些对时间同步精度有要求的场景。比如需要使用NTP时间同步的情况有&#xff1a;金融交易系统、科学研究实验、工业自动…

ROS笔记之rosbag的快速切片(C++实现)

ROS笔记之rosbag的快速切片(C实现) —— 杭州 2023-12-21 夜 code review 文章目录 ROS笔记之rosbag的快速切片(C实现)1.运行效果2.文件结构3.fast_rosbag_slice.cpp4.CMakeLists.txt5.package.xml6.对fast_rosbag_slice.cpp进行函数封装 正常该功能是ROS官方命令行&#xff1a…

pycharm下执行conda命令提示无法识别解决方案

1 问题描述 win10环境命令行执行conda命令&#xff0c;报命令无法识别&#xff0c;错误信息如下&#xff1a; PS D:\code\cv> conda activate pt conda : 无法将“conda”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写&#xff0c;如果包括路径&a…

伽马校正:FPGA

参考资料&#xff1a; Tone Mapping 与 Gamma Correction - 知乎 (zhihu.com) Book_VIP: 《基于MATLAB与FPGA的图像处理教程》此书是业内第一本基于MATLAB与FPGA的图像处理教程&#xff0c;第一本真正结合理论及算法加速方案&#xff0c;在Matlab验证&#xff0c;以及在FPGA上…

106 uni-app 小程序之巨坑 not found path,not found methods v-for渲染出现报错

1.Component is not found in path 你是否像我一样&#xff0c;检查了无数遍&#xff0c;引入路径检查千万遍&#xff0c;就是没写错&#xff0c;小程序后台就是给你报错&#xff0c; 不用慌&#xff0c;心里默念&#xff1a;我不能砸电脑&#xff0c;我不能砸电脑&#xff0…

python可以做小程序研发嘛,python能做微信小程序吗

大家好&#xff0c;给大家分享一下python可以做微信小程序开发吗&#xff0c;很多人还不知道这一点。下面详细解释一下。现在让我们来看看&#xff01; 大家好&#xff0c;给大家分享一下用python编写一个小程序&#xff0c;很多人还不知道这一点。下面详细解释一下用python代码…

[Spring 原理] 依赖查找

在Spring框架中&#xff0c;依赖注入是一项非常重要的功能&#xff0c;它能够帮助我们解决对象之间的依赖关系。而其中的doResolveDependency方法是Spring框架中执行依赖注入的核心方法之一。本篇博客将对doResolveDependency方法进行详细介绍&#xff0c;帮助读者更好地理解和…

手写题 - 实现一个带并发限制的异步调度器

题目 实现一个带并发限制的异步调度器 Scheduler&#xff0c;保证同时运行的任务最多有N个。 完善下面代码中的 Scheduler 类&#xff0c;使得以下程序能正确输出&#xff1a;class Scheduler {add(promiseCreator) { ... }// ... }const timeout (time) > new Promise(re…

Python 爬虫之下载视频(二)

爬取某Y的视频链接和标题 文章目录 爬取某Y的视频链接和标题前言一、基本思路二、程序解析阶段三、程序处理阶段总结 前言 这篇内容就简单给大家写个如何从网页上爬取某B主 主页 页面上所有的视频链接和视频标题。 这篇是基础好好看&#xff0c;下篇会根据这篇的结果做一个批…

八:爬虫-MySQL基础

一&#xff1a;MySQL数据库基础 1.MySQL数据库介绍 MySQL是一个[关系型数据库管理系统]&#xff0c;由瑞典MySQL AB 公司开发&#xff0c;属于 Oracle 旗下产品。MySQL 是最流行的关系型数据库管理系统之一&#xff0c;在 WEB 应用方面&#xff0c;MySQL是最好的 RDBMS (Rela…

3D模型人物换装系统(二 优化材质球合批降低DrawCall)

3D模型人物换装系统 介绍原理合批材质对比没有合批材质核心代码完整代码修改总结 介绍 本文使用2018.4.4和2020.3.26进行的测试 本文没有考虑法线贴图合并的问题&#xff0c;因为生成法线贴图有点问题&#xff0c;放在下一篇文章解决在进行优化 如果这里不太明白换装的流程可以…

gem5 garnet l1 l2 cache的创建与相连

gem5 garnet l1 l2 cache的创建与相连 主要就是这个图&#xff1a; 细节 我们用的是gem5/configs/deprecated/example/fs.py #fs.py 引入了上两层路径&#xff0c;也就是当前可以看到 gem5/configs/路径。 addToPath("../../")#fs.py引入了gem5/configs/ruby/Ru…

PIC单片机项目(8)——基于PIC16F877A的温度光照检测装置的protues仿真

1.功能设计 使用PIC16F877A单片机&#xff0c;进行温度检测、光照检测。温度使用的是DS18B20&#xff0c;光照检测直接利用的AD转换。 光照太暗就开灯&#xff0c;温度太高就开风扇。温度阈值和光照阈值都实时显示在LCD1602屏幕上面。 完成了protues仿真。文件里面包含代码和仿…

图片转excel:“保留数字格式”在什么场景下该勾

保留数字格式是什么意思呢&#xff1f;顾名思义&#xff0c;就是将转出来的数字保留为数字格式&#xff0c;而不是文本格式。我们知道&#xff0c;OCR程序将图片上的文字识别为电脑可编辑的文字后&#xff0c;如果导入到excel不加处理&#xff0c;则单个数字过长的文字就会被ex…

Python整数常用的方法汇总与Python3 File(文件) 方法

Python整数常用的方法汇总 python&#xff13;基础之整数常用的方法整理 希望对大家学习或者使用python3能具有一定的参考价值。 __abs__ #返回一个数的绝对值 __add__ #两数相加 __and__ #两数按位与操作 __bool__ …

04-JVM字节码文件结构深度剖析

一、源代码 package com.tuling.jvm;public class TulingByteCode {private String userName;public String getUserName() {return userName;}public void setUserName(String userName) {this.userName userName;} }二、通过javap -verbose TulingByteCode .class反编译 //…