vue开发的游戏如何vue项目部署到服务器

使用方法:
npm run dev
实现思路如下:
用vue-cli搭建项目,对这个项目可能有点笨重,但是也懒的再搭一个
4X4的方格用一个二维数组存放,绑定好后只关心这个二维数组,其他事交给vue
监听键盘事件
2048的核心部分就是移动合并的算法,因为是一个4X4的矩阵,所以只要实现左移的算法,其他方向的移动只需要将矩阵旋转,移动合并,再旋转回来,渲染dom即可
绑定不同数值的样式
分值计算,以及用localstorage存放最高分
&div class="box"&
&div class="row" v-for="row in list"&
&div class="col" :class="'n-'+col" v-for="col in row"&{col}}&/div&
主要的游戏部分的DOM,很简单,用一个二维数组渲染,并动态绑定样式
主要由以下几种情况:
2 2 2 2 =& 4 4 0 0
4 2 2 2 =& 4 4 2 0
0 4 2 2=& 4 4 0 0
2 2 4 2 =& 4 4 2 0
按单行数据举例,
遍历单行数组,若存在数据,记为cell,寻找cell往左可移到的最远空位置farthest
判断farthest的左边是否存在,不存在则直接移到到farthest
若存在,则判断farthest - 1的值和cell是否相同
相同=& 合并
不相同=&移到farthest位置
移动完后,清空cell
因为一轮移动中,一个数只能合并一次,所以每个格子要有merged参数来记录是否已经合并过。
_list.forEach(item =& {
let farthest = this.farthestPosition(list, item)
let next = list[farthest - 1]
if (next && next === item.value && !_list[farthest - 1].merged) {
list[farthest - 1] = next * 2
list[item.x] = undefined
x: farthest - 1,
merged: true,
value: next * 2
this.score += next * 2
if (farthest != item.x) {
list[farthest] = item.value
list[item.x] = undefined
item.x = farthest
因为上移,下移,左移,右移实际上是相同的,写4遍也可以,但是容易出错,所以我直接旋转将矩阵旋转,再进行移动。
以上移为例,只要将矩阵逆时针旋转一次,上移就变成了左移,移动合并成之后,只要再将矩阵逆时针旋转4-1次,矩阵就和单纯上移一样了。
逆时针旋转算法:
rotate(arr, n) {
if (n === 0) return arr
let tmp = Array.from(Array(this.size)).map(() =& Array(this.size).fill(undefined))
for (let i = 0; i & this. i++) {
for (let j = 0; j & this. j++) {
tmp[this.size - 1 - i][j] = arr[j][i]
if (n & 1) tmp = this.rotate(tmp, n - 1)
return tmp
到这时候已经完成了80%了,只要再完善一下,加入分值,重新开始等功能就可以了。
以上所述是小编给大家介绍的vue实现2048小游戏功能思路详解,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对悠悠之家网站的支持!
本文的主要内容是参考官方文档说明总结而来:
Vue js @尤雨溪 老师写的一个用于创建 web 交互界面的
vue js 是用来构建web应用接口的一个库
技术上,Vue js 重点集中在MVVM模式的ViewModel层,它连接视图和
关于响应式
vue的双向绑定是基于响应式来做的,即给一个Vue对象的属性加上getter, setter方法,在这些方法中处
目前前端框架太多,接触过angular、ember,现在开始倒腾vue
此处用到v-if、v-else、v-show,v-if或让元素不在DOM
一、v-bind 缩写
&!-- 完整语法 --&
&a v-bind:href=&url&&& a&
&!-- 缩写 --&
&a :href=&url&&& a&
原生javascript代码写的2048游戏。建议在谷歌浏览器下跑。
2048 html 复制代码 代码如下:&!DOCTYPE&&html xml
没有技术含量,只是用来练习代码逻辑的。为了代码结构清晰,我把逻辑控制部分写在全局变量里,用户界面操作封装
&!DOCTYPE&
&html xmlns=&http:
www w3 org 1999 xhtml&&
&meta http-equiv=&Content-Typ
  去年2048很火, 本来我也没玩过, 同事说如果用JS写2048 只要100多行代码;
  今天试了一下, 逻辑也
最近心血来潮,项目结束了,使用javascript写个小游戏,练练收吧,写的不好还请各位大侠给出批评建议。
本文的主要内容是参考官方文档说明总结而来:
Vue js @尤雨溪 老师写的一个用于创建 web 交互界面的
vue js 是用来构建web应用接口的一个库
技术上,Vue js 重点集中在MVVM模式的ViewModel层,它连接视图和
关于响应式
vue的双向绑定是基于响应式来做的,即给一个Vue对象的属性加上getter, setter方法,在这些方法中处
目前前端框架太多,接触过angular、ember,现在开始倒腾vue
此处用到v-if、v-else、v-show,v-if或让元素不在DOM
一、v-bind 缩写
&!-- 完整语法 --&
&a v-bind:href=&url&&& a&
&!-- 缩写 --&
&a :href=&url&&& a&
本文的主要内容是参考官方文档说明总结而来:
Vue js @尤雨溪 老师写的一个用于创建 web 交互界面的
vue js 是用来构建web应用接口的一个库
技术上,Vue js 重点集中在MVVM模式的ViewModel层,它连接视图和
关于响应式
vue的双向绑定是基于响应式来做的,即给一个Vue对象的属性加上getter, setter方法,在这些方法中处
目前前端框架太多,接触过angular、ember,现在开始倒腾vue
此处用到v-if、v-else、v-show,v-if或让元素不在DOM
一、v-bind 缩写
&!-- 完整语法 --&
&a v-bind:href=&url&&& a&
&!-- 缩写 --&
&a :href=&url&&& a&
记得上班写代码时,我们技术总监总说是要先&设计&,那就先&设计&吧。 ps:我是新手大家多多见谅。
今天先预览一下今晚的成果,如下(挫了点,别扔砖头):今天主要设计了下选择器,就是进入游戏时展现游戏列表,
这里是12个非常有创意的JavaScript小游戏,希望在给我们带来趣味的同时也能更进一步地了解更深层次的JavaScript
1、Mario(游戏地址:http:
jsmario com ar )
传说中的马里奥网页版,一比一实现了红白机时代超级马里奥中
以下是代码: 复制代码 代码如下:&!DOCTYPE html PUBLIC &-
DTD XHTML 1 0 Transitional
悠悠之家集编程技术、手机软件与游戏、各种素材、字体下载, 还有大量的学习笔记,编程工具,源码下载,编程技术教学资源。
本站为非营利性网站,悠悠之家的资源均来自网络收集整理,个人纯属学习交流之用,如有侵犯您的版权请与我联系,我们会马上改正请在下载24小时内删除!
Copyright & 2021 悠悠下载(uoften.com) All Rights Reserved.初探全栈,基于vue全家桶和nodejs写的一个小项目,讲述开发和部署过程 - CNode技术社区
这家伙很懒,什么个性签名都没有留下。
vn-pastime
基于vue全家桶、mongodb和nodejs的全栈项目,其实是个大杂烩。通过这个项目,了解前后端的整合,以及产品上线的基本流程
前端使用axios与后台api交互获取数据,vue全家桶进行数据的管理和渲染,mongodb存储网上爬取的原始数据以及用户后期产生的数据,nodejs主要提供api接口以及token的签发与验证
线上使用阿里云服务器部署,nginx进行http反向代理,pm2管理Node应用的进程
线上地址:
这个项目本身并不复杂,最主要的是清扫了一些后台的盲区,满足了自己的好奇心,特别是在项目部署这一块。虽然还没有达到熟悉的地步,但提起也不至于什么也不知道。
后期将会优化前端的代码,比如代码的结构和书写规范,以及vue的组件规范,还有响应式的实现,也可能会添加一些新的模块。
├── app.js
// 后台入口
├── index.html
├── server
// 服务端文件
├── api
// api借口
├── middlewares
└── jwtMid.js
// token验证中间件
├── models
// mongodb的文档模型
└── public
├── src
// 前端主文件
├── api
// 前端api,与后台api的交互
├── App.vue
├── assets
// 静态资源
├── font
├── img
└── scss
├── components // 单个组件
├── main.js
├── router
├── store
├── utils // axios拦截器
└── axiosService.js
└── views // 页面级组件
主要功能(期待更多)
[x] 视频播放列表的展示
[x] 视频播放器自定义样式
[x] 视频评论功能,包括二级评论,自定义简单的富文本组件,用于评论的编辑
[x] 基于token进行登录验证
[x] 图片的展示列表
[x] 图片滚动加载
[x] 图片详情页展示,支持上下张切换以及评论
[x] 使用socket.io进行简单聊天室
[x] 图片上传预览
项目总结和感想
组件编写应该规范
vue上手容易,可以很轻松的实现一些功能。但是要让代码变得更加容易维护和扩展,还得做点其他工作。组件编写规范化便是一个非常有效的方法,组件一般分为基础组件和业务组件,组件应该各司其职,比如基础组件就不应该包含跟业务相关的具体代码,只是返回一个信息,给引用它的组件。这样可以降低组件的耦合度,提升组件的可复用性。
比如一个confirm组件
&template&
&transition name=&confirm&&
&div class=&info-confirm& v-show=&showFlag&&
&div class=&info-header&&
&span&提示信息&/span&
&/div&
&div class=&info-text&&
{{ text }}
&/div&
&div class=&info-button&&
&a href=&#& @click.prevent=&confirm&&{{ confirmBtnText }}&/a&
&a href=&#& @click.prevent=&cancle&&{{ cancleBtnText }}&/a&
&/div&
&/div&
&/transition&
&/template&
export default {
type: String,
default: ''
confirmBtnText: {
type: String,
default: '确定'
cancleBtnText: {
type: String,
default: '取消'
showFlag: false
methods: {
this.showFlag = false
this.showFlag = true
confirm () {
this.hide()
this.$emit('confirm')
cancle () {
this.hide()
this.$emit('cancle')
&/script&
在点击确认后,不应该直接在这里组件里面处理接下来的逻辑(比如删除或着清空),而是应该通过this.$emit('confirm')向父组件传递一个确认的信息,父组件监听这个方法,然后再处理接下来的逻辑
这个项目后续将会重点围绕这点来进行优化
前后端如何分离
这是之前我最想知道的问题,听过很多前后端分离,但是都是只闻其声,不见其形。
之前同学问过我这样一个问题,为什么前端也要单独起一个服务,当时我脑海里,闪过的第一个答案就是,现在前端构建项目需要依赖很多包,需要通过node环境来安装各种依赖工作,帮助我们工作。
现在看来这个答案大错特错了,问的是服务,而不是node环境。其实这个问题的答案和前后端分离也和相关
在传统web开发的时候,前端和后端的工作比较耦合,后端人员要做着很多前端的工作,不停切换,比如发送后台请求。这样导致前后端分工不明确,效率反而更加低。不仅如此,而且前后端还要搭建同样的开发环境,让前端开发去搭建一个Java开发环境,显得有些复杂,而且确实没必要。
现代web开发,前后端各司其职,开发之前约定好数据接口和格式,就可以同时开发了。
前端负责静态样式的编写,以及发送ajax请求,后台负责api的开发和测试。双方都不用管对方具体怎么实现。
前面也说到过前端不应该去搭建一个复杂的Java或者其他后台服务,我们可以通过nodejs来搭建一个服务器,寥寥几行代码,便可快速搭建,搭建nodejs服务器的好处
可以模拟线上环境,毕竟本地静态文件和线上还是有些差别,比如路径等
发送ajax,还要处理跨域
部署线上,中间层,用于加载静态文件
前后端如何部署
在前后端完全分离的情况下,前端和后端当然是分别部署(本案例由于是自己一个人写的,并且后台语言正好是nodejs,所以没有将前后端分别部署),比如www.xxxuthus.cn,那么后台api可以使用一个二级域名api.xxxuthus.cn
前端部署,nodejs为一个中间层,作为静态文件服务器,比如将webpack打包后的dist作为静态资源
const express = require('express')
const env = process.env.NODE_ENV || 'development'
const app = express()
app.use(express.static('./dist'))
const server = app.listen(4000, () =& {
console.log(`Express started in ${app.get('env')} mode on http://localhsot:4000`)
使用nginx进行反向代理,当用户访问静态资源的时候,返回静态资源,当前台访问api的时候,转发到后台服务器
该配置文件是该项目的,该项目没有严格按照前后端分离部署,所以其它场景配置文件仅供参考
upstream xxxuthus {
server 127.0.0.1:4000;
listen 80;
server_name www.xxxuthus.
location / {
proxy_set_header X-Real-IP $remote_
proxy_set_header X-Forward-For $proxy_add_x_forwarded_
proxy_set_header Host $http_
proxy_set_header X-Nginx-P
proxy_pass http://
location ~* ^.+\.(jpg|jpeg|gif|png|ico|css|js|pdf|txt) {
root /www/vnpastime/production/current/
前后端分离,就会面临着跨域问题,比较常用的跨域CORS,proxy代理以及nginx反向代理
在开发环境中我一般使用proxy代理的方式,通过在config/index.js下面设置
proxyTable: {
'/api':{
target: 'http://localhost:4000',
changeOrigin: true
'/auth':{
target: 'http://localhost:4000',
changeOrigin: true
我们前端服务为8080,当我们访问/api/**的时候,便会转发到端口为4000的服务上
生产环境我使用的是nginx代理,前面已经有所介绍
nodejs项目部署工具pm2
pm2是node的一个进程管理器,能够保证进程永远或者,使用它部署变得相当容易
npm install pm2 -g
配置文件,在项目根目录项新建文件ecosystem.json
&name&: &vnpastime&,
&script&: &app.js&,
&COMMON_VARIABLE&: &true&
&env_production& : {
&NODE_ENV&: &production&
&deploy&: {
&production&: {
&user&: &xuthus_y&,
&host&: [&106.14.173.2&],
&port&: &22&,
&ref&: &origin/master&,
&repo&: &:xxxgitone/vue-node-pastime.git&,
&path&: &/www/vnpastime/production&,
&ssh_options&: &StrictHostKeyChecking=no&,
&post-deploy& : &npm install && npm run build && pm2 startOrRestart ecosystem.json --env production&,
&NODE_ENV&: &production&
将该文件push到github中,初次启动执行
pm2 deploy ecosystem.json production setup
pm2 deploy ecosystem.json production
可以在服务器,通过pm2 list和pm2 logs分别查看部署成功的应用和部署日志
以后每次修改的项目,push到github后,直接在本地通过
pm2 deploy ecosystem.json production
就可以更新线上的内容了
记录了我部署过程中的一些关键步骤,可以参考
Build Setup
# clone项目
git clone :xxxgitone/vue-node-pastime.git
cd vue-node-pastime
# install dependencies
npm install
# 还原数据,为了方便展示,我将数据库上传到了项目中,文件名为vnpastime
# --host 数据库服务
# -d 数据库名
# 最后面是备份文件的路径,如果不在该目录下记得填写绝对路径
mongorestore --host 127.0.0.1:27017 -d vnpastime ./vnpastime/
# 启动mongodb服务
# 启动后台服务
node app.js
# 再启动前台
npm run dev
# build for production with minification
npm run build
跨域的问题 使用 cors 就可以解决了。。没必要用代理 多麻烦呀。。
自豪地采用
cors确实也挺方便
自豪地采用
Thanks. Cancle应为cancel
爬虫在哪呢
项目目录下的crawler.js文件
api 借口 [没错我就是来找事的,hahah]
哈哈,你也发现了,上次有个小伙伴在github提交了一个pr改掉了
自豪地采用
请问一下你的爬虫怎么启动的
CNode 社区为国内最专业的 Node.js 开源技术社区,致力于 Node.js 的技术研究。
服务器赞助商为
,存储赞助商为
,由提供应用性能服务。
新手搭建 Node.js 服务器,推荐使用无需备案的手把手教你打造Vue小型项目
随着互联网的高速发展,前端技术也在不断的更新与迭代,目前比较火的前端框架有Vue、React、Angular等。本文将带着大家去学习一下Vue框架的使用,利用Vue框架来搭建一个小型的项目。
首先需要安装Vue的开发环境,可以利用Vue官方提供的一个脚手架来初始化项目。执行以下命令:
npm install -g vue-cli
vue init webpack myApp
(图1.1安装脚手架)
注:其中myApp为项目的名字,可自行指定。
项目初始化完毕,就可以启动我们的项目了,运行以下代码:
npm run dev
(图1.2初始化界面)
接下来就是配置一些静态资源和组件的划分,项目要用到的静态资源需要放到static目录下;而项目划分的组件需要放到src/components目录下,如下所示:
(图1.3静态资源)
(图1.4组件划分)
组件是Vue框架中很重要的一个概念,其目的就是让一个功能或一个页面形成一个组件,这样就可以通过组件之间的组合来搭建出一个项目,这种模式非常适合多人协作开发,后期维护起来也是非常方便的。
在Vue框架中,组件为一个.vue文件,官方把这种文件叫做单文件组件。一个单文件组件可以实现组件的结构、样式与行为。三者分别被放置到&teamplate&、&&、&style&标签中。
(图1.5单文件组件)
接下来就是去配置项目中的路由了。那么什么是路由呢?路由是根据不同的 url 地址展示不同的内容或页面。用 Vue.js + vue-router 创建单页应用,是非常简单的。
一般移动端的项目比较适合作成单页面开发,这样就非常适合使用路由来构建项目中的页面间跳转。路由的基本操作有:
1. 显示路由对应的内容:&router-view&&/router-view&
2. 点击跳转路由:&router-link to="/foo"&Go to Foo&/router-link&
3. 嵌套路由:children
4. 动态路由:'/detail/:id'
(图1.6路由的配置信息)
好了,到此项目中的页面就可以进行切换了,那么接下来要考虑的就是页面中的数据该怎么获取了。可以利用反向代理技术来获取后端的数据,下面先来了解一下反向代理。
反向代理(Reverse Proxy)方式是指以代理服务器来接受internet上的连接请求,然后将请求转发给内部网络上的服务器,并将从服务器上得到的结果返回给internet上请求连接的客户端,此时代理服务器对外就表现为一个反向代理服务器。
(图1.7反向代理流程图)
那么怎么在Vue项目中去配置反向代理呢?需要在config目录中的index.js中进行配置,如下所示:
(图1.8反向代理配置)
好了,到此我们的项目基本算是搭建完毕了,下面看下最终的项目效果图:
(图1.9项目效果图)
最后给大家附上源码下载的地址,方便自行学习:https://github.com/ghostdp/maizuoproject
责任编辑:
声明:该文观点仅代表作者本人,搜狐号系信息发布平台,搜狐仅提供信息存储空间服务。
专注VR/AR/Unity游戏引擎开发,HTML5,PHP,JavaEE,Python,UI,开发培训。
专注VR/AR/Unity游戏引擎开发培训。
今日搜狐热点Vue项目服务器部署之子目录部署_百度经验
该经验图片、文字中可能存在外站链接或电话号码等,请注意识别,谨防上当受骗!&&&&&&&&&电脑软件Vue项目服务器部署之子目录部署听语音1234567
百度经验:jingyan.baidu.comVue项目尤其是基于.vue单文件格式的项目部署,在build成js文件后发布到服务器上,一般都是通过nginx反向代理到跟文件目录后直接访问,然而由于很多时候没办法使用更多的子域名(比如微信公众号只能有一个域名),所以急需将服务器部署到子目录。本经验以一次成功的系统部署为例,讲解子目录方式部署Vue工程。百度经验:jingyan.baidu.comvue vueRouter Poinginx百度经验:jingyan.baidu.com1首先介绍一下Poi,我们的项目没有使用webPack进行前端工程项目管理,使用了Poi进行管理:Develop web apps with no build configuration until you need.也就是说Poi对webpack进行了封装,0配置开发Web应用。可以使用poi.config.js文件配置poi的配置,也可以直接在package.json中进行配置。2执行npm run dev相当于执行poi,执行npm run dist相当于执行poi build.执行poi build打包后,会将static目录下的资源拷贝到dist目录,其他的js和css会自动压缩成.js 和.css并且注入到index.html中。3poi项目如果需要打包到子目录,必须设置homePage为子目录。这是第一步4第二步,必须将index.html中其他非Vue部分的资源增加子目录的前缀,包括网站的icon.5第三步保证Css文件中的资源路径为相对路径。6第四步,需要修改vueRouter中的base为子目录。7然后执行npm run dev 也就是npm build.观察打包后的index.html,css文件等。8然后配置nginx到二级目录:& & & & location& /ticket {&& & & & & alias /root/java/ticket/dist/;&& & & & & try_files $uri $uri/ @& & & & }& & & & location @rewrites {& & & & & rewrite ^/(ticket|sign|reimburse)/(.+)$ /$1/index.& & & & }这里$1对应url中的ticket,由于我这里有多个项目共用了rewrite所以逻辑或了三个,如果只有一个子目录,使用^/(ticket)/(.+)$,这里切记要把ticket扩起来。9项目部署成功!END经验内容仅供参考,如果您需解决具体问题(尤其法律、医学等领域),建议您详细咨询相关领域专业人士。作者声明:本篇经验系本人依照真实经历原创,未经许可,谢绝转载。投票(0)已投票(0)有得(0)我有疑问(0)◆◆说说为什么给这篇经验投票吧!我为什么投票...你还可以输入500字◆◆只有签约作者及以上等级才可发有得&你还可以输入1000字◆◆如对这篇经验有疑问,可反馈给作者,经验作者会尽力为您解决!你还可以输入500字相关经验10028030热门杂志第1期你不知道的iPad技巧3803次分享第1期win7电脑那些事6656次分享第2期新人玩转百度经验1418次分享第1期Win8.1实用小技巧2661次分享第1期小白装大神1940次分享◆请扫描分享到朋友圈该经验图片、文字中可能存在外站链接或电话号码等,请注意识别,谨防上当受骗!在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。
问题对人有帮助,内容完整,我也想知道答案
问题没有实际价值,缺少关键内容,没有改进余地
前端用vue写的,用webpack打包后生成static文件夹和index.html,直接放在java项目的webapp目录下,
|--index.html
|--WEB-INF
这是目录结构,放在tomcat中,后端只写提供接口,不负责页面跳转,使用html5的history模式进行路由,但是nginx中不知道如何配置,以前java代码控制跳转配置如下:
listen 80;
server_name www.xxx.
access_log logs/app-vue.access.
root /data/tomcat/webapps/app-
location /
proxy_set_header X-Real-IP $remote_
proxy_set_header X-Forwarded-Host $
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_
#try_files $uri $uri/ /index.
proxy_pass http://127.0.0.1:8080/app-vue/;
这样导致如果刷新连接就会访问java后台的controller,简介导致404错误,看了官方文档需要nginx配置文件中添加
try_files $uri $uri/ /index.
配置文件中注释掉的那一部分,但是配置之后,就无法访问了,nginx直接报500.
要如何配置才能达到效果?先谢谢各位!
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
你应该把Nginx的静态根目录配置成你这个webapp的目录
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
问题应该是出在proxy_pass上,是我没有很好的理解proxy_pass,我以前的配置:
location / {
proxy_pass http://127.0.0.1/app-vue/;
当我在浏览器访问www.xxx.com/api/1xx/2xx方法的时候,我猜想location的/并没有替换app-vue,真正的访问路径是然而我现在配置是:
location /api/ {
proxy_pass http://127.0.0.1/app-vue/;
这样子当我再访问www.xxx.com/api/1xx/2xx方法的时候,由于代理给我替换了路径,真正的路径变成了,然而再tomcat中的访问应该是,我现在最终的解决方案是:
location /api/ {
proxy_pass http://127.0.0.1/app-vue/api/;
这样子就可以达到访问的地址www.xxx.com/api/1xx/2xx的时候,匹配到location中的/api/的时候,他就替换成了正确的地址。--------------网上的资料------------第三种:location /proxy/ {
proxy_pass http://127.0.0.1/aaa/;
}代理到URL:
答案对人有帮助,有参考价值
答案没帮助,是错误的答案,答非所问
location / {
root WEBAPPROOT;
可能存在权限问题显示403,修改权限即可
同步到新浪微博
分享到微博?
关闭理由:
删除理由:
忽略理由:
推广(招聘、广告、SEO 等)方面的内容
与已有问题重复(请编辑该提问指向已有相同问题)
答非所问,不符合答题要求
宜作评论而非答案
带有人身攻击、辱骂、仇恨等违反条款的内容
无法获得确切结果的问题
非开发直接相关的问题
非技术提问的讨论型问题
其他原因(请补充说明)
我要该,理由是:
在 SegmentFault,学习技能、解决问题
每个月,我们帮助 1000 万的开发者解决各种各样的技术问题。并助力他们在技术能力、职业生涯、影响力上获得提升。

我要回帖

更多关于 vue 项目的部署 更新 的文章

 

随机推荐