一、安装node环境

1、下载地址为:https://nodejs.org/en/

2、检查是否安装成功:如果输出版本号说明我们安装node环境成功
在这里插入图片描述
  3、为了提高我们效率可以使用淘宝镜像http://npm.taobao.org/

输入npm installg cnpmregistry=https://registry.npm.taobao.org即可安装npm镜像,以后再用到npm的地方直接cnpm来代替就好了。
在这里插入图片描述
  检查是否安装成功:
在这里插入图片描述
二、搭建vue项目环境

1、全局安装vuecli

npm installglobal vuecli
在这里插入图片描述
  2、进入你的项目目录创建一个基于 webpack 模板的新项目
在这里插入图片描述
  说明

Vue build ==> 打包方式回车即可

Install vuerouter ==> 是否要安装 vuerouter项目中肯定要使用到 所以Y 回车

Use ESLint to lint your code ==> 是否需要 js 语法检测 目前我们需要 所以 n 回车

Set up unit tests ==> 是否安装 单元测试工具 目前我们需要 所以 n 回车

Setup e2e tests with Nightwatch ==> 是否需要 端到端测试工具 目前我们需要 所以 n 回车

3、进入项目cd vuedemo安装依赖
在这里插入图片描述
  安装成功后,项目文件夹中会多出一个目录: node_modules
在这里插入图片描述
  4、npm run dev启动项目

项目启动成功:
在这里插入图片描述
三、vue项目目录讲解
在这里插入图片描述
  1、build构建脚本目录

1)build.js ==> 生产环境构建脚本

2)checkversions.js ==> 检查npmnode.js版本

3)utils.js ==> 构建相关工具方法

4)vueloader.conf.js ==> 配置css加载器以及编译css之后自动添加前缀

5)webpack.base.conf.js ==> webpack基本配置

6)webpack.dev.conf.js ==> webpack开发环境配置

7)webpack.prod.conf.js ==> webpack生产环境配置

2、config:项目配置

1)dev.env.js ==> 开发环境变量

2)index.js ==> 项目配置文件

3)prod.env.js ==> 生产环境变量

3、node_modulesnpm 加载的项目依赖模块

4、src这里我们开发目录基本上要做的事情都在这个目录里。里面包含了几个目录文件

1)assets资源目录放置一些图片或者公共js、公共css这里资源会被webpack构建

2)components组件目录,我们写的组件就放在这个目录里面

3)router前端路由,我们需要配置路由路径写在index.js里面

4)App.vue:根组件

5)main.js:入口js文件

5、static静态资源目录,如图片字体等。不会被webpack构建

6、index.html首页入口文件可以加一meta 信息

7、package.jsonnpm配置文件定义了项目的npm脚本依赖包等信息

8、README.md:项目的说明文档markdown 格式

9、.xxxx文件:这些是一些配置文件,包括语法配置git配置等

四、开始我们的第一个vue项目

1、在components目录下新建一个views目录,里面写我们的vue组件

1)开始我们的第一个组件

a:在views目录下新建First.vue

b:在router目录下的index.js里面配置路由路径
在这里插入图片描述

ctemplatehtmlscript写 js,style样式
在这里插入图片描述

d:输入iphttp://localhost:8010/#/first查看页面效果
在这里插入图片描述

注意:

一个组件下只能有一个并列div,以下写法错误

在这里插入图片描述

数据要写在 return 里面,而不是像文档那样子写,以下写法错误

在这里插入图片描述

2、讲讲父子组件

1)在components目录下新建sub文件夹用于存放一下可以复用的子组件。比如新建一个Confirm.vue组件
在这里插入图片描述

3)在父组件中引入子组件

引入import Confirm from ‘…/sub/Confirm

注册:在标签内的 name代码块后面加上 components: {Confirm}

使用:在内加上

完整代码

在这里插入图片描述

2)父子组件通信

子组件:
在这里插入图片描述

父组件:
在这里插入图片描述

3、使用路由搭建单页应用

1)按照以上方法新建一个Second.vue组件

2)路由跳转:去第二个页面
在这里插入图片描述
    路由跳转之后,注意观察路径变化:
在这里插入图片描述

可以看到,在html解析成了a标签
在这里插入图片描述

这里只是简单的介绍了一下路由的使用,更多详细信息,请前往官网学习https://router.vuejs.org/zhcn/

4、如何less样式

1)安装less依赖npm install less less-loadersave
在这里插入图片描述

安装成功之后,可在package.json看到,多增加了2个模块
在这里插入图片描述

2)编写less
在这里插入图片描述

五、补充

1、解决vue不能自动打开浏览器问题:当我们输入npm run dev运行项目,命令行提示我们运行成功,但是浏览器没有自动打开,只能自己手动输入。

解决

1)打开config ==> index.js
在这里插入图片描述

2)module.exports配置中找到autoOpenBrowser默认设置的是false
在这里插入图片描述

3)将autoOpenBrowser改为true
在这里插入图片描述

4)Ctrl+C,然后我们重启一下,就能自动打开浏览器
在这里插入图片描述

2、为了避免端口冲突,也可以修改port打开目录同上
在这里插入图片描述

修改成功:
    在这里插入图片描述

操作记录如下
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

文件配置详细注解
我在scr同级目录下创建config文件夹,里边包含三个文件

在这里插入图片描述

它们3个有引用关系

dev引用prod

prod.env.js文件

/*
* process.argv.splice(2)[0]返回的是node.js绝对路径
* '/usr/local/bin/node'
*/
let HOST = process.argv.splice(2)[0] || 'prod'
module.exports = {
  NODE_ENV: '"production"',   // 导出了一个环境
  HOST: HOST
}

dev.env.js文件

/*
* webpack-merge插件:
*   该插件用来合并对象配置文件需要,
*   相同选项会被替换掉
*   插件需要安装
*/
const merge = require('webpack-merge')
const prodEnv = require ('./prod.env')
module.exports = merge(prodEnv,{
  NODE_ENV: 'development',  // 将两个配置合并生成development环境
  HOST: 'dev'
})

index.js文件

const path = require('path');
let host = '127.0.0.1'  // 项目运行成功后本地服务地址localhost
let backend = 'http://127.0.0.1:9999'  // 后端地址
module.exports = {
  dev: {                          // 开发环境
    host: host,                   // 可以被process.env.HOST覆盖
    port: 8080,                   // 端口号
    assetsSubDirectory: 'static', // 静态资源存放目录
    assetsPublicPath: '/',        // 引用资源相对路径地址http://...就是访问网络资源
    proxyTable: {                 // 跨域,在开发环境下才有跨域,所以这个属性在dev下
      "/start": {
        target: backend,    // 目标接口域名,http://locahost:8080/start == http://backend/start
        timeout: 2000000,   // 设置超时
        changeOrigin: true  // 是否跨域
      }
    },
    autoOpenBrowser: false, // 运行成功后自动启动浏览器
    errOverlay: true,       // 在浏览器展示错误蒙层
    notifyOnErrors: true,   // 错误事件监听器,是否展示错误通知
    poll: false,            // 指定webpack检查文件的方式,使用poll选项,以轮询方式检查文件是否改变
    cacheBusting: true,     // 指定是否通过文件名称后面添加一查询字符串创建source mao的缓存
    cssSourceMap: true,
    devtool: 'cheap-module-eval-source-map'   // source  maps格式
  },
  build: {                  // 生产环境
    index: path.resolve(__dirname,'../dist/index.html'),  // html文件的生成的地方,是绝对路径
    assetsRoot: path.resolve(__dirname,'../dist'),        // 编译生成文件目录
    assetsSubDirectory: 'static',
    assetsPublicPath: '/',
    productionSourceMap: true,  // 是否生产环境的sourcmap,sourcmap用来debug编译后文件的,通过映射到编译前文件来实现
    productionGzip: false,      // 是否开启生产环境的gzip压缩 (如果要压缩必须安装compression-webpack-plugin)
    devtool: '#source-map',
    productionGzipExtensions: ['js','css'], // 是否开启生产环境的gzip压缩 (如果要压缩必须安装compression-webpack-plugin)
    bundleAnalyzerReport: process.env.npm_config_report  // 是否开启编译完成后的报告(如果这个选项是true的话,那么则会在build后,会在浏览器生成一份bundler报告)
  }
}

参考
https://www.cnblogs.com/yanxulan/p/8978732.html
https://blog.csdn.net/weixin_44068262/article/details/119959088

原文地址:https://blog.csdn.net/SSophia/article/details/129714012

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_40086.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注