首页 > 其他分享 >《vue新建篇》新建项目

《vue新建篇》新建项目

时间:2024-01-16 10:26:55浏览次数:25  
标签:npm vue 项目 新建 App Vue import router

脚手架和webpack的区别

"vue init webpack" 是 Vue.js 2.x 的旧方式,使用 webpack 模板创建项目。这种方式需要手动配置一些比较复杂的 webpack 配置,配置大量的选项,但是可以按照个人需求进行灵活的配置。这个命令可以用来创建高度定制化的 Vue.js 项目。

"vue create" 是 Vue.js 3.x 的新方式,它使用 @vue/cli 创建项目。这种方式提供了一种更现代的工作流程,通过直接运行此命令,Vue CLI 将使用默认配置快速生成一个新项目。与"vue init webpack" 相比,"vue create" 提供了更加简单的配置选项,也更易于使用。

在大多数情况下,建议使用 "vue create" 创建新项目,特别是对于新手来说。 "vue init webpack" 更适合那些需要在 Vue.js 项目中进行高度定制化的开发人员。

使用脚手架新建

参考链接:https://segmentfault.com/a/1190000022484789

一、安装nodejs
1、访问网址:https://nodejs.org/en/ ,下载安装(左边稳定版,右边最新版),一路next。
image

2、下载完成后,cmd中输入node -v,检查是否安装成功
image

3、同样npm也跟node一起安装成功了,输入npm -v,可查看npm版本。

# 将npm更新至最新版本。
npm -g install npm

# npm自带的源是国外源,下载很慢。我们要切换国内源
npm config set registry https://registry.npm.taobao.org

nrm已经不支持高版本node,以下步骤可以跳过

# 安装nrm(快速切换NPM源)
npm install -g nrm

# 列出可选的源
nrm ls

* npm ---- https://registry.npmjs.org/
  cnpm --- http://r.cnpmjs.org/
  taobao - http://registry.npm.taobao.org/
  eu ----- http://registry.npmjs.eu/
  au ----- http://registry.npmjs.org.au/
  sl ----- http://npm.strongloop.com/
  nj ----- https://registry.nodejitsu.com/

# 切换源
nrm use taobao

二、安装脚手架

# 安装脚手架
npm install -g @vue/cli
# 输入检查是否安装成功
vue -V

三、构建前端项目

# 安装
vue create admin

会弹出让你选预装插件的选项,一般我选default
image

# 安装成功后
cd admin
npm run serve

然后打开
http://localhost:8080
看到如下页面即时构建成功
image

四、项目结构
1、预览结构
image

2、public文件夹下的index.html

点击查看代码
<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width,initial-scale=1.0">
    <link rel="icon" href="<%= BASE_URL %>favicon.ico">
    <title><%= htmlWebpackPlugin.options.title %></title>
  </head>
  <body>
    <noscript>
      <strong>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work properly without JavaScript enabled. Please enable it to continue.</strong>
    </noscript>
    <div id="app"></div>
    <!-- built files will be auto injected -->
  </body>
</html>

主要看的是id=app的这个div,所有的页面都是在这个div下被动态加载的。

3、App.vue
这个文件被称为“根组件”,其他的组件都是被包含在这个组件中。
它的代码如下:

点击查看代码
<template>
  <div id="app">
    <img alt="Vue logo" src="./assets/logo.png">
    <HelloWorld msg="Welcome to Your Vue.js App"/>
  </div>
</template>

<script>
import HelloWorld from './components/HelloWorld.vue'

export default {
  name: 'App',
  components: {
    HelloWorld
  }
}
</script>

<style>
#app {
  font-family: Avenir, Helvetica, Arial, sans-serif;
  -webkit-font-smoothing: antialiased;
  -moz-osx-font-smoothing: grayscale;
  text-align: center;
  color: #2c3e50;
  margin-top: 60px;
}
</style>

介绍如下:

  • 这个其中的id=app的div与index.html中无关,只对应下面的css。
  • script标签内的就是该组件的脚本,即js代码
  • export default是ES6的语法,将组件导出,大括号内是该组件的属性;与导入命令import命令对应。
  • router-view标签,是一个路由,指的是url所指内容会展示在这个标签内。

4、main.js
main.js是入口文件,它的作用就是,将App.vue和index.html关联起来。
代码如下:
新版vue代码(在新建项目时需选择vue add router)

import Vue from 'vue'
import App from './App.vue'
import router from './router'

Vue.config.productionTip = false

new Vue({
  router,
  render: h => h(App)
}).$mount('#app')

旧版本如下:

import Vue from 'vue'
import App from './App'
import router from './router'

Vue.config.productionTip = false

/* eslint-disable no-new */
new Vue({
  el: '#app',
  router,
  components: { App },
  template: '<App/>'
})

介绍如下:

  • import几个模块,就是与上述export介绍的那样。
  • router就是router文件夹下定义的路由
  • Vue.config.productionTip = false,阻止vue在启动时生成生产提示。

总结:在main.js中,我们创建了一个Vue实例,el属性提供了一个在页面上已存在的DOM元素作为Vue实例的挂载对象(将App.vue与index.html绑定),router代表这个实例包含 Vue router ,并使用项目中定义的路由。components表示该对象包含的Vue组件,template意思是用一个字符串代表该Vue实例(类似于html的标签那样使用)

使用webpack新建

参考链接:https://www.jianshu.com/p/02b12c600c7b
一、安装
参考上述
二、切换镜像

大家都知道国内直接使用npm 的官方镜像是非常慢的,这里推荐使用淘宝 NPM 镜像。

npm install -g cnpm --registry=https://registry.npm.taobao.org

三、新建项目
1、安装vue-cli

cnpm install vue-cli -g      //全局安装 vue-cli
vue list                     //查看vue版本号

2、创建项目
创建一个文件夹test-vue

vue init webpack test-vue

现在已经创建好了,那就让项目先安装下依赖再运行一下,会出现下面的页面,操作指令是:
这里注意与脚手架创建的做区分run dev和run serve

cnpm install
cnpm run dev

注意 这里要在test-vue目录下进行安装和运行哦!!!

访问127.0.0.1:8080,页面如下
image

文件目录如下:
image

标签:npm,vue,项目,新建,App,Vue,import,router
From: https://www.cnblogs.com/fusio/p/17384174.html

相关文章

  • 《vc6篇》vc6新建项目
    新建项目首先建立工程,点击文件->新建点击win32ConsoleApplication选择工程位置和编写工程名字,点击确定点击一个空工程添加源文件,再次进入文件->新建点击c++源文件按钮,编写源文件名字和选择源文件路径,最后点击确认便可开始c语言编程errorBK1506:cannotopenfile'......
  • vue入门页面,搭建localhost官方默认页面
    按照提示操作可以做出下图效果:idea中的vue目录层级为:1.下载node.js(nodes.js是前端的运行环境,类似于后端中的jdk,没有node.js后续操作无法进行,具体流程百度)2.新建文件夹(这个文件夹就是你之后vue的目录)点进去新建的文件夹3.输入cmd回车4.输入命令:npmconfigsetreistryht......
  • 《vue概念篇》vue设计思路
    vue工作原理参考链接:https://www.cnblogs.com/lishanlei/p/8423407.html参考链接:https://www.cnblogs.com/wzfwaf/p/10553160.htmlMV模式之前,我们都是通过原生js操作dom元素,比如:获取内容、增加点击事件等,如果任务量非常大,那么我们的js代码会随着业务的增加变得臃肿,那么多逻辑,......
  • 《vue语法篇》基础语法
    ref和$ref在Vue中,$ref是一个特殊的属性,它允许您引用组件或DOM元素。可以使用$ref属性在组件或元素上绑定一个唯一的标识符,然后在Vue实例中使用$ref来访问该组件或元素。类似于id选择器。例如,假设您有一个组件:点击查看代码<template><div><inputtype="text"ref="myI......
  • Vue实现大文件分片上传,包括断点续传以及上传进度条
    首先解释一下什么是分片上传分片上传就是把一个大的文件分成若干块,一块一块的传输。这样做的好处可以减少重新上传的开销。比如:如果上传的文件是一个很大的文件,那么上传的时间应该会比较久,再加上网络不稳定各种因素的影响,很容易导致传输中断,用户除了重新上传文件外没有其他的办法......
  • 【开源项目推荐】——纯中文本地GPT知识库搭建项目.assets
    大家好,我是独孤风。又到了本周的开源项目推荐。近一年多的时间,人工智能迎来了大爆发。GPT相关的大模型的发展让很多领域都发生了巨大的变化。但是虽然GPT的自然语言识别功能异常的强大,但回答给我们的知识内容并不尽如人意。那么,有没有可以在本地部署搭建的AI知识库项目呢?今天为......
  • 为什么很多公司 SpringBoot 项目禁止使用 Tomcat
    为什么很多公司SpringBoot项目禁止使用Tomcat学习改变命运,技术铸就辉煌。大家好,我是銘,全栈开发程序员。前言在SpringBoot框架中,我们使用最多的是Tomcat,这是SpringBoot默认的容器技术,而且是内嵌式的Tomcat。同时,SpringBoot也支持Undertow容器,我们可以很方便的用......
  • maven项目关于target目录没有生成xml文件的解决方案
    1.这是我的项目目录结构2.在我通过maven的install后,target目录中并没有xml文件解决方案:1.在maven的pom文件中添加2.再通过maven的install后,target目录中出现xml文件......
  • 高效工作法:占位图片生成工具助力项目快速迭代
    在现代设计和开发项目中,图片资源的重要性不言而喻。然而,项目中经常会遇到寻找合适图片、调整图片尺寸和格式等问题,这些问题不仅耗时耗力,还可能影响到项目的进度和质量。此时,占位图片生成工具应运而生,它为我们的项目带来了诸多好处,解决了诸多难题。占位图片|一个覆盖广泛主......
  • springboot项目配置多数据源
    springboot项目配置多数据源//关键:mybatis文件的目录需要区分开来sqlSessionFactoryBean.setMapperLocations(newPathMatchingResourcePatternResolver().getResources("classpath:mybatis.myProjectOne/*.xml"));#从数据库配置,数据库的配置以spring.datasource.myPr......