vue安装初始化项目

news/2024/10/21 5:37:01/

安装vue脚手架启动项目

1、nvm安装vue 当前nvm使用的node版本是v10.24.1

npm install -g @vue/cli

安装完成之后报错
You are using Node v10.24.1, but this version of @vue/cli requires Node ^12.0.0 || >= 14.0.0.
Please upgrade your Node version.
显而易见,需要更新node版本,直接用nvm安装了新版本

nvm install v12.0.0    
#  继续安装vue
npm install -g @vue/cli

然后就可以使用了,发现nvm安装不同的node版本 vue还得重新装。
安装后还显示了一个这个

                                                            ││      New major version of npm available! 6.14.12 → 9.6.3      ││   Changelog: https://github.com/npm/cli/releases/tag/v9.6.3   ││               Run npm install -g npm to update!   

让更新npm的,暂时没这个需要,不更新
2、创建一个vue项目

vue create ysdq-bms

选择Default ([Vue 2] babel, eslint)
后端🐶来学习前端,怎么简单怎么来,直接选默认的即可了。
3、 启动项目

$ cd ysdq-bms$ npm run serve

常见问题

npm --save和–save -dev的区别

npm --save和–save -dev的区别
npm install vue-router 等价 npm install vue-router --save
–save是默认的,例如 npm i jquery 和 npm i jquery --save 是等价的
–save是代表着项目上线时所依赖的包
–save-dev 代表着是项目打包或者开发时候需要的包,实际上线的时候所不依赖的
两者可以在package.json里面查看

关闭eslint

主要是用idea中有红色波浪线,点击左上角Intellij IDEA -Preference,搜索Eslint点击disable即可

项目中常用依赖

注意是vue2项目

# 安装路由
npm i vue-router@3.5.1
# 安装element-ui
npm i element-ui@2.15.13
# axios
npm i axios@0.24.0
# vuex
npm i vuex@3.6.2

vue2项目流程分析

main.js

整个项目的入口文件
执行npm run serve会直接执行main,js文件。
验证方法:
main.js 其他全部注释,启动项目打开控制台看到执行了。

// import Vue from 'vue'
// import App from './App.vue'
// import ElementUI from "element-ui";
// import router from "./router/index.js";
//
// //设置为 false 以阻止 vue 在启动时生成生产提示。
// Vue.config.productionTip = false
// Vue.use(ElementUI);
//
// new Vue({
//   render: h => h(App),
//   router
// }).$mount('#app')
console.log(666);

分析main.js内容

// 引入Vue 这个是模块引入 实际引入的是一个js文件 在vue文件下package.json中的module属性即dist/vue.runtime.esm.js
import Vue from 'vue'
// 引入App组件 根组件
import App from './App.vue'
//设置为 false 以阻止 vue 在启动时生成生产提示。
Vue.config.productionTip = false
// 创建Vue实例对象 new Vue()--创建对象 -同时要传递参数 ,参数也是一个对象用{}里面是配置 即配置对象
//1、render: h => h(App) 将App组件放入容器中 
new Vue({render: h => h(App),router
}).$mount('#app')

import Vue from ‘vue’

1、实际引入的是一个js文件 在vue文件下package.json中的module属性即dist/vue.runtime.esm.js
2、这个是一个残缺的js文件没有模版解析器
比如这个Vue里面不能解析模版
这里抛出一个疑问,挂载的到底是哪个容器上的app?
vue main.js中app绑定的是index.html还是App.vue中?

import Vue from 'vue'
new Vue({el:'#app',template:'<h1>HHHHHHH<h1/>'
})

而引入全部的js文件可以解析

import Vue from 'vue/dist/vue'
new Vue({el:"#app",template:"<h1>HHHH</h1>"
})

以上#app是挂载到public/index.html中的容器中的
3、引入残缺的vue如何挂载到容器上?
render是一个函数,Vue自动帮我们调用,而有一个参数是createElement函数,它能帮我们创建具体元素编写内容,通过打印到控制台看到是createElement 是function即函数

const vm = new Vue({// render: h => h(App)render(createElement){console.log(typeof createElement)}
});
# render就是配置内容的
const vm = new Vue({// render: h => h(App)render(createElement){// console.log(typeof createElement)return createElement('h1','asfasf')}
});
# render没有用到this 那么可以写成箭头函数
render:(createElement)=>{return createElement('h1','asfasf')
}
# 一个参数 括号可以去掉,里面只有一个语句,还可以去掉{} 
render:createElement=>createElement('h1','asfasf')
# createElement 用h代替
render:h=>h('h1','asfasf');
# 最后用的是组件那么直接传入组件即可
render: h => h(App)

分析创建Vue对象

1、创建vue对象 同时用el挂载到app容器上

const vm = new Vue({el:"#app",render: h => h(App),
});

2、拿到Vue对象使用$mount(‘#app’)挂载

const vm = new Vue({render: h => h(App),router
});
vm.$mount('#app')
# 当然也可以这样简写
new Vue({render: h => h(App)
}).$mount('#app')

http://www.ppmy.cn/news/51734.html

相关文章

2379. 得到 K 个黑块的最少涂色次数

2379. 得到 K 个黑块的最少涂色次数 给你一个长度为 n 下标从 0 开始的字符串 blocks &#xff0c;blocks[i] 要么是 ‘W’ 要么是 ‘B’ &#xff0c;表示第 i 块的颜色。字符 ‘W’ 和 ‘B’ 分别表示白色和黑色。 给你一个整数 k &#xff0c;表示想要 连续 黑色块的数目。…

JavaWeb+在线图书商城+Ajax(异步的 JavaScript 和 XML)(超详细)

&#x1f648;作者简介&#xff1a;练习时长两年半的Java up主 &#x1f649;个人主页&#xff1a;老茶icon &#x1f64a; ps:点赞&#x1f44d;是免费的&#xff0c;却可以让写博客的作者开兴好久好久&#x1f60e; &#x1f4da;系列专栏&#xff1a;Java全栈&#xff0c;计…

MQTT 开放基准测试规范:全面评估你的 MQTT Broker 性能

引言 我们很高兴地宣布&#xff1a;由 EMQ 提供的 MQTT 开放基准测试规范现已正式发布&#xff01; 该测试规范包含了实用的典型使用场景、一套衡量 Broker 性能的主要指标&#xff0c;以及一个模拟负载和收集测试结果的工具&#xff0c;可以帮助开发者评估 MQTT Broker 的可…

二战失利,剩下的路?

作者&#xff1a;阿秀 校招八股文学习网站&#xff1a;https://interviewguide.cn 这是阿秀的第「260」篇原创 小伙伴们大家好&#xff0c;我是阿秀。 欢迎今年参加秋招的小伙伴加入阿秀的学习圈&#xff0c;目前已经超过 2300 小伙伴加入&#xff01;去年认真准备和走下来的基…

中睿天下亮相2022电力行业信息化年会

4月14日-15日&#xff0c;以“低碳数字新动力&#xff0c;电力转型新发展”为主题的2022电力行业信息化年会在长沙成功召开。中睿天下作为网络安全企业受邀出席参展&#xff0c;展示多样性网络安全产品、电力行业解决方案及相关应用成果。 作为能源电力领域的行业盛会和学术交流…

Jenkins配置邮箱发送报告

本文以qq邮箱为例 1.下载Email Extension Plugin插件 2.在Manage Jenkins--System&#xff0c;Jenkins Location下配置理员邮件 Extended E-mail Notification 下配置Jenkins SMTP server&#xff08;邮箱服务&#xff09;、SMTP Port&#xff08;邮箱端口&#xff09;、Cred…

正式开赛|2023年“桂林银行杯”数据建模大赛暨全国大学生数学建模竞赛广西赛区热身赛

为学习贯彻党的二十大工作报告中关于加快发展数字经济、促进数字经济和实体经济深度融合的重要指示&#xff0c;不断推进数字化转型与金融科技创新&#xff0c;桂林银行联合全国大学生数学建模竞赛广西赛区组委会、广西应用数学中心&#xff08;广西大学&#xff09;共同主办20…

榜上有名 | 创宇盾荣登“2023 IT市场权威榜单”!

4月20日&#xff0c;已连续成功举办23届的IT市场年会在北京举行&#xff0c;作为权威咨询机构赛迪主办&#xff0c;中国IT业界延续时间最长的年度盛会之一&#xff0c;“2023 IT市场年会”隆重发布重磅权威榜单。 创宇盾作为云防护领域专业防护产品&#xff0c;在国家经济产业…