【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,设置axios,utils工具包,vue.fonfig.js配置项 (下)

53 篇文章 10 订阅
订阅专栏
6 篇文章 5 订阅
订阅专栏

系列文章目录

这里是创建移动端项目
【Vue】Vue2.x创建项目全程讲解,保姆级教程,手把手教,Vue2怎么创建项目(上)
【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,接上一篇创建Vue2项目(中)
【Vue】Vue2创建移动端项目实战教程,创建移动端项目保姆级教程,设置axios,utils工具包,vue.fonfig.js配置项 (下)


提示:写完文章后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 系列文章目录
  • 前言
  • 一、安装vant2
    • 1.引入库
    • 2.引入组件
    • 3.检查组件以及适配
  • 二、设置样式
    • 1.清除app.vue默认样式
    • 2.新建全局样式
    • 3.引入全局样式
  • 三、设置axios请求
    • 1.下载axios,设置request请求
    • 2. 引入getToken方法
    • 3. 引入errorCode变量
  • 4、设置env环境
    • 1.创建本地环境dev
    • 2.创建服务器环境prod
  • 五、vue.config.js
    • 1. 创建vue.config.js
    • 2.修改后台接口地址
  • 六、编写api请求
    • 1.创建接口
    • 2.在vue页面中引入api方法
  • 七、bin脚本文件,一键运行
    • 1、打包 -- build.bat
    • 2、下载依赖 -- package.bat
    • 3、运行 -- run-web.bat
  • 总结
    • gitee链接,已公开 [传送门](https://gitee.com/guo-bomin/vue-app)


前言

请先看前两篇上篇为创建项目,中篇为适配移动端,下篇为引入组件以及配置选项


一、安装vant2

传送门 Vant 轻量、可靠的移动端 Vue 组件库

1.引入库

我这里是vue2项目,如果是你的项目是vue3的话,说明你已经对vue2有了解了,这里仅供参考vue2的教程

# Vue 3 项目,安装最新版 Vant:
npm i vant -S

# Vue 2 项目,安装 Vant 2
npm i vant@latest-v2 -S

2.引入组件

按需引入手动引入请看 vant官方写法

全部引入,打开main.js文件

// 引入vantUI
import Vant from 'vant';
import 'vant/lib/index.css';
Vue.use(Vant);

在这里插入图片描述

运行项目 npm run serve

3.检查组件以及适配

修改views下的Home.vue页面为如下代码

<template>
  <div class="home">
    <van-button type="primary">主要按钮</van-button>
    <van-button type="info">信息按钮</van-button>
    <van-button type="default">默认按钮</van-button>
    <van-button type="warning">警告按钮</van-button>
    <van-button type="danger">危险按钮</van-button>
  </div>
</template>

<script>
// @ is an alias to /src

export default {
  name: 'Home',
  components: {

  }
}
</script>

效果如图
在这里插入图片描述
在这里插入图片描述

虽然有移动端适配,但是像h2这种标签,你不去给px大小,它好像不一定会转化,就还是pc端大小

二、设置样式

1.清除app.vue默认样式

打开src/App.vue,删除里面的默认样式
最后保留为如下代码

<template>
  <router-view />
</template>

2.新建全局样式

在src目录下新建styles文件夹,然后在文件夹下新建一个base.css,代码如下

body,ul{
	margin: 0;
	padding: 0;
}
ul{
	list-style: none;
}
h1,h2,h3,h4,h5,p,span{
	margin: 0;
	/* font-family: 'PingFang SC'; */
	font-family: PingFang SC-Heavy, PingFang SC;
}
a{
	text-decoration: none;
	color: #333;
}
img{
	vertical-align: middle;
}

这个是简单版,复杂的可参考 通用css样式模板, CSS 通用样式总结

3.引入全局样式

在styles新建index.css文件
内容如下

@import url(./base.css);

在这里插入图片描述
main.js中,引入index.css文件

// 自定义基础样式库
import './styles/index.css'

引入后效果如图
在这里插入图片描述

一般情况ui设计图是750px宽度,vant是基于375,当你在ui设计图上面的尺寸为16px时,你需要设置为32px,才能与设计图一致。


三、设置axios请求

1.下载axios,设置request请求

传送门 axios中文文档|axios中文网

npm install axios -S

在src目录下创建文件夹 utils
在里面新建一个request.js文件

我这里考虑到请求需要携带token,以及生产环境和开发环境的配置,
request.js我直接贴出来,不作解释,都有注释,详细可参考若依项目,很多脚手架功能都是来自于若依后台系统

import axios from 'axios'
import errorCode from '@/utils/errorCode'
import {
	getToken
} from '@/utils/auth'

import {
	Dialog,
	Notify
} from 'vant';

axios.defaults.headers['Content-Type'] = 'application/json;charset=utf-8'

// 创建axios实例
const service = axios.create({
	// axios中请求配置有baseURL选项,表示请求URL公共部分
	baseURL: process.env.VUE_APP_BASE_API, // 本地后台接口||服务器接口
	// 超时
	timeout: 40000
})
// request拦截器
service.interceptors.request.use(config => {
	// 是否需要设置 token
	const isToken = (config.headers || {}).isToken === false
	// config.headers['Authorization'] = sessionStorage.getItem('token') // 让每个请求携带自定义token 请根据实际情况自行修改
	// config.headers['token'] = sessionStorage.getItem('token') // 让每个请求携带自定义token 请根据实际情况自行修改
	config.headers['Authorization'] = 'Bearer ' + getToken()
	// get请求映射params参数
	if (config.method === 'get' && config.params) {
		let url = config.url + '?';
		for (const propName of Object.keys(config.params)) {
			const value = config.params[propName];
			var part = encodeURIComponent(propName) + "=";
			if (value !== null && typeof (value) !== "undefined") {
				if (typeof value === 'object') {
					for (const key of Object.keys(value)) {
						let params = propName + '[' + key + ']';
						var subPart = encodeURIComponent(params) + "=";
						url += subPart + encodeURIComponent(value[key]) + "&";
					}
				} else {
					url += part + encodeURIComponent(value) + "&";
				}
			}
		}
		url = url.slice(0, -1);
		config.params = {};
		config.url = url;
	}
	return config
}, error => {
	console.log(error)
	Promise.reject(error)
})

// 响应拦截器
service.interceptors.response.use(res => {
	// 未设置状态码则默认成功状态
	const code = res.data.code || 200;
	// 获取错误信息
	const msg = errorCode[code] || res.data.msg || errorCode['default']
	// 二进制数据则直接返回
	if (res.request.responseType === 'blob' || res.request.responseType === 'arraybuffer') {
		return res.data
	}
	if (code === 401) {
		return Promise.reject('无效的会话,或者会话已过期,请重新登录。')
	} else if (code === 402) {
		return Promise.reject(new Error(msg))
	} else if (code === 403) {
		return Promise.reject(new Error(msg))
	} else if (code === 500) {
		Notify({
			type: 'danger',
			message: msg
		});
		return Promise.reject(new Error(msg))
	} else if (code === 601) {
		Notify({
			type: 'warning',
			message: msg
		});
		return Promise.reject('error')
	} else if (code !== 200) {
		Dialog({
			title: '错误',
			message: msg
		});
		return Promise.reject('error')
	} else {
		return res.data
	}
}, error => {
	console.log('err' + error)
	let {
		message
	} = error;
	if (message == "Network Error") {
		message = "后端接口连接异常";
	} else if (message.includes("timeout")) {
		message = "系统接口请求超时";
	} else if (message.includes("Request failed with status code")) {
		message = "系统接口" + message.substr(message.length - 3) + "异常"; // 例如502异常
		// message = "系统更新服务中,请稍后重试";
	}
	// 弹出报错信息
	Notify({
		message: message,
		type: 'danger',
		duration: 5 * 1000,
	});
	return Promise.reject(error)
}
)


// 使用a标签下载
export function fileDown(blobUrl, filename) {
	const a = document.createElement("a");
	if (!a.click) {
		throw new Error('DownloadManager: "a.click()" is not supported.');
	}
	a.href = blobUrl;
	a.target = "_parent";
	if ("download" in a) {
		a.download = filename;
	}
	(document.body || document.documentElement).append(a);
	a.click();
	a.remove();
}

export default service

  • 上述代码缺少一个getToken方法
  • 还缺少一个errorCode变量

不着急,慢慢来

2. 引入getToken方法

在utils文件夹下创建一个auth.js文件

import Cookies from 'js-cookie'

const TokenKey = 'Admin-Token'

export function getToken() {
  return Cookies.get(TokenKey)
}

export function setToken(token) {
  // 设置60分钟后过期
  const inFifteenMinutes = new Date(new Date().getTime() + 60 * 60 * 1000);
  return Cookies.set(TokenKey, token, { expires: inFifteenMinutes })
}

export function removeToken() {
  return Cookies.remove(TokenKey)
}

这里需要安装一个插件

npm install --save js-cookie

3. 引入errorCode变量

在utils文件夹下创建一个errorCode.js文件

export default {
  '401': '认证失败,无法访问系统资源',
  '403': '当前操作没有权限',
  '404': '访问资源不存在',
  'default': '系统未知错误,请反馈给管理员'
}

4、设置env环境

1.创建本地环境dev

在src外面创建文件名为 .env.development

#模式
NODE_ENV = 'development'
#  // 通过"VUE_APP_MODE"变量来区分环境
VUE_APP_MODE = 'development'

# 请求路径
VUE_APP_BASE_API = '/dev-api'


# 这是开发环境,未上线

#		*******************			**   **		**
#			**		**			   ****************
#			**		**					**
#		*******************			   ************
#			**		**				  ***	    **
#			**		**				 **  **    **
#		   **		**				**	    ***
#		  **		**			   **	 **    ***

2.创建服务器环境prod

在src外面创建文件名为 .env.production

#模式
NODE_ENV = 'production'

#通过"VUE_APP_MODE"变量来区分环境
VUE_APP_MODE = 'production'

#api地址
VUE_APP_BASE_API = '/prod-api'

# 这是上线环境,已投入使用

环境配置里面的VUE_APP_BASE_API为代理请求,可更改,这个东西看后端怎么调用或者修改吧
在这里插入图片描述
例如我发起了一个列表请求,这个192.168.1.6是我的电脑ip,后端java的电脑ip例如是192.168.1.7

我就通过/dev-api请求到他的电脑上的接口

五、vue.config.js

与package.json同级

1. 创建vue.config.js

const webpack = require('webpack')
const path = require("path")

const CompressionPlugin = require('compression-webpack-plugin')

module.exports = {
	lintOnSave: false,
	devServer: {
		port: 8088,
		host: '0.0.0.0',
		open: true,
		proxy: {
			[process.env.VUE_APP_BASE_API]: {
				target: `http://192.168.1.66:8080`,
				changeOrigin: true,
				pathRewrite: {
					['^' + process.env.VUE_APP_BASE_API]: ''
				}
			},
		},
		historyApiFallback: true, // 设置了当服务端收到 404 请求时,将会返回 index.html 文件
	},
	configureWebpack: {
		resolve: {
			alias: {
				'@': path.resolve(__dirname, 'src'),
				'assets': '@/assets'
			}
		},
		plugins: [
			// http://doc.ruoyi.vip/ruoyi-vue/other/faq.html#使用gzip解压缩静态文件
			new CompressionPlugin({
				cache: false,                   // 不启用文件缓存
				test: /\.(js|css|html)?$/i,     // 压缩文件格式
				filename: '[path].gz[query]',   // 压缩后的文件名
				algorithm: 'gzip',              // 使用gzip压缩
				minRatio: 0.8                   // 压缩率小于1才会压缩
			}),
			// maxChunks:使用大于或等于 1 的值,来限制 chunk 的最大数量。使用 1 防止添加任何其他额外的 chunk,这是因为 entry/main chunk 也会包含在计数之中。
			//minChunkSize: 设置 chunk 的最小大小。
			// 限制打包的个数(减少打包生成的js文件和css文件)
			new webpack.optimize.LimitChunkCountPlugin({
				maxChunks: 10,
				minChunkSize: 100
			})
		],
	},
	publicPath: "/",
	assetsDir: './',
	assetsDir: 'static', // 整合css和js到这里
	outputDir: 'app', // 打包名称,例如默认为dist
}

这一段代码用到了compression-webpack-plugin ,项目中没有,要进行安装,否则会报红

这个东西有版本问题,我直接下载了最新版10.0.0,结果项目运行不起来,然后我就找到了以前旧项目的版本

版本我已经指定好了,直接安装即可。

npm install compression-webpack-plugin@5.0.2 --save-dev

安装完了请检查package.json中的配置
在这里插入图片描述

由于vue的特性,修改env,vue.config.js,项目是需要重启的。


2.修改后台接口地址

在这里插入图片描述
这个target,这里是你的本地的后台java开发地址

六、编写api请求

1.创建接口

在src目录下创建一个文件夹【api】,在api下创建test.js用作测试,后续写其他接口都是这样
先集成在api文件夹里,然后再不同的vue页面引入

import request from '@/utils/request'
// 查询常用意见列表
export function listComment(query) {
    return request({
        url: '/flow/comment/list',
        method: 'get',
        params: query
    })
}
// 查询常用意见详细
export function getComment(id) {
    return request({
        url: '/flow/comment/' + id,
        method: 'get'
    })
}
// 新增常用意见
export function addComment(data) {
    return request({
        url: '/flow/comment',
        method: 'post',
        data: data
    })
}
// 修改常用意见
export function updateComment(data) {
    return request({
        url: '/flow/comment',
        method: 'put',
        data: data
    })
}
// 删除常用意见
export function delComment(id) {
    return request({
        url: '/flow/comment/' + id,
        method: 'delete'
    })
}

在这里插入图片描述

2.在vue页面中引入api方法

在Home.vue页面中引入

import { listComment } from "@/api/test.js"

在这里插入图片描述
然后编写methods方法,在created里面请求

<template>
  <div class="home">
    <h1>这是h1标签</h1>
    <h2>这是h2标签</h2>
    <h3>这是h3标签</h3>
    <h4>这是h4标签</h4>
    <h5>这是h5标签</h5>
    <van-button type="primary">主要按钮</van-button>
    <van-button type="info">信息按钮</van-button>
    <van-button type="default">默认按钮</van-button>
    <van-button type="warning">警告按钮</van-button>
    <van-button type="danger">危险按钮</van-button>
  </div>
</template>

<script>
// @ is an alias to /src

import { listComment } from "@/api/test.js"
export default {
  name: 'Home',
  components: {

  },
  data() {
    return {

    }
  },
  created() {
    this.getList()
  },
  methods: {
    // 获取列表
    getList() {
      listComment().then(res => {

      })
    }
  }
}
</script>

打开f12控制台,查看网络请求
在这里插入图片描述

在这里插入图片描述
我这里已经请求到数据了


同理,引入该js中其他方法只需要往后面加就是了

import { listComment , ***list , ***del , ...... } from "@/api/test.js"

然后有不同的js需要分成不同的js包,如下图
在这里插入图片描述

七、bin脚本文件,一键运行

每次打开项目都需要手动去写npm run serve,太麻烦了,这里集成了一个bin脚本
与src同级,建立一个文件夹,名字为bin
在这里插入图片描述

1、打包 – build.bat

@echo off
echo.
echo [信息] 打包Web工程,生成dist文件。
echo.

%~d0
cd %~dp0

cd ..
npm run build

pause

2、下载依赖 – package.bat

@echo off
echo.
echo [信息] 安装Web工程,生成node_modules文件。
echo.

%~d0
cd %~dp0

cd ..
npm install --registry=https://registry.npm.taobao.org

pause

3、运行 – run-web.bat

@echo off
echo.
echo [信息] 使用 Vue CLI 命令运行 Web 工程。
echo.

%~d0
cd %~dp0

cd ..
npm run serve

pause

在这里插入图片描述
先建一个js然后写进去再改后缀名,或者直接建这个名字然后用VSCode打开编辑。

双击即可运行,如果npm run dev是你的运行方式, 修改里面的server为dev就好了。

总结

gitee链接,已公开 传送门

在这里插入图片描述

很好的一个移动端项目脚手架,axios、环境、适配,都做好了。vuex这个可以用若依的,也可以自己写

vuex有两种,一种没有子模块,没有子模块的,直接在它的store/index.js里面写。
如果有子模块呢,就是子模块引入到这个父模块,父模块在modules里面注册一下。在vue页面中引入就会多一层modules模块。

下面这个就是我自己写的,简单版的,是有子模块的。
vuex的多模块用法简单版

由于这个项目我建的时候选择的是scss渲染器,所以不是less渲染器。重新建的时候选择scss with dart-scss就好了,或者你装了less再装一下scss也行。全篇下来没有写到关于less或scss的代码

移动端项目vue2+vant组件库)
qq_45585640的博客
06-23 6939
在命令行中输入以下命令创建 Vue 项目: 这里建议两个都选上,更严谨。 这里建议选择第 1 个,保存到单独的配置文件,这样方便我们自定义配置。 安装结束,命令提示你项目创建成功,按照命令行的提示在终端中分别输入: [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-UynFzUoP-1654274042910)(assets/1582010300149-9932febe-2625-4ee7-986f-9190ab449fec.png)]如
vue移动端项目创建
weixin_51700454的博客
07-20 285
【代码】vue移动端项目创建
保姆Vue项目安装配置步骤(包含vue-cli脚手架环境配置Vue项目创建、运行)
最新发布
apple_68589597的博客
08-29 1866
保姆Vue项目安装配置步骤(包含vue-cli脚手架环境配置Vue项目创建、运行)
vue前端搭建教程-创建vue项目保姆教程
qq_42040242的博客
05-18 1012
vue前端搭建教程-创建vue项目保姆教程vue2搭建教程
vue2搭建教程 vue2+vant2
wenmin1987的博客
03-13 348
vue2+vant2搭建
vue2项目配置vant(移动端
Gong_01的博客
02-14 696
vue2项目配置vant(移动端
前端vue移动端项目-taotiao.zip
05-30
在本项目中,“前端vue移动端项目-taotiao.zip”是一个基于Vue.js框架构建的移动端应用,用于模拟或实现类似“今日头条”的新闻阅读体验。Vue.js前非常流行的一个前端JavaScript框架,它以其轻量、高效且易于...
Vue2开发移动端的模板
03-18
2. **配置文件**:Vue项目中常见的配置文件有`vue.config.js`,用于设置Vue CLI的配置,包括公共路径、代理设置、输出录等。还有可能包含`babel.config.js`,用于配置Babel转译规则,确保ES6+语法在老版本浏览器中...
vue项目实战-使用vue开发的点外卖App-附项目源码.zip
01-26
Vue.js 是一款轻量前端JavaScript框架,以其易学易用、高性能和组件化的特点在Web开发领域受到广泛欢迎。本项目一个基于Vue.js的实际应用案例,旨在帮助开发者掌握如何利用Vue.js来构建一个完整的点外卖应用...
Vue项目实战-vue2(移动端)
m0_57860459的博客
03-07 9163
Vue项目实战(移动端)# 相关资料 (一) 创建项目 (二) 禁用Eslint (三) devtool (四) 添加less支持 (五) vue路由配置(背诵) (六) 父子组件通信(背诵) (七) axios拦截器(背诵) (八) Sticky 粘性布局 (九) 图片懒加载 (十) 全局注册组件 (十一) slot插槽 (十二) 使用ui库需要关注的三点 (十三) 三种路由传参方式(背诵) (十四) 模拟数据 (十五) 计算属性computed和属性观察watch (十
基于Vue2的移动端开发环境搭建详解
11-29
前言 vue2.0发布了,那么还在用vue1.x的你,是不是也有所心动呢?下面这篇文章就给大家详细介绍基于Vue2的移动端开发环境搭建的详细步骤,下面来一起看看吧。 一、vue-cli 首先还是介绍我们的脚手架工具,因为它能让我们省去大部分的配置时间,这里只给出简单步骤,保证你的命令顺利运行的前提是安装最新版本的 node 和 npm,这里不赘述升流程 全局安装 vue-cli npm install vue-cli -g 借此也全局安装一个 webpack npm install webpack -g 注意这里可能会有坑,墙内的用户安装失败,没关系,我们先安装淘宝镜像 npm ins
Vue.js前端开发 PDF
05-30
9. **vue-cli和脚手架工具**:Vue CLI是Vue.js的命令行工具,用于快速搭建项目结构,自动化处理构建流程,如编译、热重载等。 10. **测试和调试**:Vue Test Utils和Jest等工具可以用于Vue应用的单元测试和集成测试...
VueVue2创建移动端项目实战教程创建移动端项目保姆教程,接上一篇创建Vue2项目(中)
qq_51055690的博客
09-20 4333
vue2项目适配移动端实战案例,接上一篇创建vue2项目,开发使用px不用rem
Vant简介及创建Vue项目并使用Vant
weixin_57541178的博客
03-23 5458
Vant简介及创建Vue项目并使用Vant
vue框架中如何添加一个vue页面?常见的router,service,store/module文件夹的结构是什么?
weixin_64123373的博客
08-15 417
把框架搞懂是了解项目不可缺少的一步。
Vuevue2适配移动端 vue创建移动端项目
qq_51055690的博客
07-29 4092
vue项目适配移动端保姆教程 适配h5页面教程 导入插件适配移动端
Vue移动端项目流程
CSDN博客
01-13 4884
【课堂笔记】vue-pro-移动端
Vue 移动端项目创建
路虽远行则将至,事虽难做则必成。
12-05 2402
移动端我们一般通过Vue脚手架手动自定义创建项目,只需要Node环境我们就可以通过npm下载Vue脚手架,通过命令创建项目。npm下载脚手架 执行创建命令 选中自定义创建 选择Vue版本,依赖Babel降ES6语法,依赖vue-router,依赖vuex,使用css预处理器,使用代码风格校验。 选择vue2.0版本 是否使用历史模式API,输入 n 选择less这种css预处理器 选择 通用语法风格配置 语法风格校验的时机,保存代码校验,提交代码校验且自动修复。 选择使用不同的配置文件对于所依赖工
vue 移动端项目源码
11-19
Vue 移动端项目源码通常包括以下几个方面的内容: 1. **Vue 项目结构**:Vue 项目通常采用一定的结构,包括src录下的assets、components、router、views、utils等文件夹。其中assets存放静态资源,components存放业务组件,router存放路由配置,views存放页面组件,utils存放工具类等。 2. **移动端适配**:移动端项目通常需要针对不同屏幕尺寸进行适配,可以使用rem、vw/vh单位,或采用第三方库如flexible.js、postcss-pxtorem等进行适配。 3. **移动端交互**:移动端项目通常会涉及到一些与用户交互相关的功能,比如手势操作、滑动、拖拽等,这些交互需要通过合适的组件或库来实现,比如使用vue-touch、better-scroll等。 4. **网络请求**:移动端项目通常需要与后端进行数据交互,可以使用axios、fetch等库进行网络请求,同时需要处理接口的异常情况、数据的格式化等。 5. **优化与打包**:移动端项目需要考虑性能优化,比如减少http请求、减小资源体积、使用懒加载、代码分割等。另外,还需要对项目进行打包,生成适合移动端环境的代码包。 6. **页面跳转与状态管理**:移动端项目页面之间的跳转通常通过路由进行管理,同时还需要对页面状态进行管理,可以使用vuex等状态管理工具来实现。 综上所述,Vue 移动端项目源码包括了项目的结构、移动端适配、交互、网络请求、优化与打包、页面跳转与状态管理等方面的内容。同时,针对具体的项目需求,源码中可能还会涉及到其他方面的内容,比如权限控制、国际化等。
写文章

热门文章

  • 【Vue】vue2项目使用swiper5.4.5轮播图2024年1月5日实战保姆级教程(已过时) 14713
  • 青龙面板缺少axios依赖的解决办法 Cannot find module ‘axios’【已解决】 13227
  • 【Vue】时间戳转换为年月日 格式为 yyyy-MM-dd hh:mm js转换时间戳 时间戳转换为年月日 Fri Apr 01 2022 00:00:00 GMT+0800 (中国标准时间)转换 12769
  • vantUI van-picker中的column使用,picker选择器展示对象数组里面的属性,自定义展示数据 11991
  • [Vue]Vue2.x创建项目全程讲解,保姆级教程,手把手教,Vue2怎么创建项目(上) 11760

分类专栏

  • Vue 53篇
  • vue插件实战案例 7篇
  • server酱、微信测试号,订阅消息发布 5篇
  • vue2高德地图api教程 7篇
  • 微信测试号实战 2篇
  • 各种常用但是容易忘记代码 23篇
  • mysql 1篇
  • 创建项目实战开发 6篇
  • 前端面试题 Vue方面 2篇
  • 微信小程序开发 3篇

最新评论

  • 高德地图api接口免费查询天气实战案例,axios请求查询天气,js版,【接上一篇微信测试号推送纪念日】

    阿民不加班: 我这个是nodejs运行

  • 高德地图api接口免费查询天气实战案例,axios请求查询天气,js版,【接上一篇微信测试号推送纪念日】

    阿民不加班: 高德地图的,好像可以

  • 高德地图api接口免费查询天气实战案例,axios请求查询天气,js版,【接上一篇微信测试号推送纪念日】

    tengshuman: 打包之后不能用 是为啥

  • 解决vue-print-nb打印时多出一页空白,vue-print-nb打印有空白页

    Try forever: 真的nb,能问问怎么想出来这个思路的吗?

  • element ui plus跑马灯放置图片,实现轮播效果,图片路径在assets

    453251: 如果是用Vite构建的vue项目的话是不支持require的,可以直接import

大家在看

  • 网站优化怎么做?全方位攻略助你赢得搜索引擎青睐
  • Java 一维数组作为函数参数 168
  • 基于java的儿童众筹救助捐赠系统【毕设】 551
  • [代码模型精读]CodeX模型:Evaluating Large Language Models Trained on Code
  • 毕业设计-基于Python的旅游网站数据爬虫分析-可视化大屏

最新文章

  • 【Sass】常用全局sass高级函数,可使用原子化CSS减轻代码量,方便快速开发
  • 【Vue2】vue指定页面div保存为pdf、vue指定页面内容转为文件流上传到后端、js指定div页面转为pdf文件
  • github克隆拉取项目,创建publicKey,解决Key is invalid. You must supply a key in OpenSSH public key format。
2024年3篇
2023年37篇
2022年57篇
2021年7篇
2020年4篇

目录

目录

评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿民不加班

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或 充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值

深圳坪山网站建设公司优化增强型网站汉沽网站优化排名服务热线高县网站seo优化排名深圳整站优化网站制作软文推广内江网站优化电话天津网站优化排名服务热线网站优化与网站竞价的区别网站综合优化价格翠竹论坛网站优化余姚网站优化桂平网站关键词优化排名网站建设与优化侔俳丿云速捷优化网站效果好郑州网站优化推广有哪些郑州官网网站优化哪家便宜莆田网站优化排名栾城区网站seo优化排名企业谷歌优化网站茂名品牌网站优化报价太原网站优化体验孝感市网站线上推广优化优化网站120种方法关键词优化网站排名下降原因丹东网站长尾关键词优化兰州网站权重优化费用沛县网站推广优化关键词优化网站排名做网站优化推广多少钱河南品牌网站全网优化上海信息化网站优化质量保障香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化