搭建一个Vue项目(完整步骤)

一、安装Node环境

具体请参考:http://www.dinganan.cn/nodej安装和配置/

二、搭建vue项目环境

1、全局安装vue-cli

npm install --global vue-cli

2、进入你的项目目录,创建一个基于 webpack 模板的新项目: vue init webpack 项目名

说明:

  • Vue build ==> 打包方式,回车即可;
  • Install vue-router ==> 是否要安装 vue-router
  • Use ESLint to lint your code ==> 是否需要 js 语法检测
  • Set up unit tests ==> 是否安装 单元测试工具 
  • Setup e2e tests with Nightwatch ==> 是否需要 端到端测试工具

3、进入项目:cd vue-demo,安装依赖

进入项目、安装依赖(上一步就会自动安装好)

安装成功后,项目文件夹中会多出一个目录:node_modules

4、npm run dev,启动项目

当在浏览器打开http://127.0.0.1:8080,看到下图内容时,说明VUE安装并且运行成功了

三、vue项目目录讲解

1、build:构建脚本目录

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

2)check-versions.js   ==>  检查npm,node.js版本;

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

4)vue-loader.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_modules:npm 加载的项目依赖模块

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.json:npm包配置文件,定义了项目的npm脚本,依赖包等信息

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

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

四、vue中常用的一些方法

1、组件中调用组件

1.先使用import导入你要在该组件中使用的子组件

2.然后,在components中写入子组件

3.在template中就可以直接以标签形式使用了

2、组件传参

组件1传参

组件2接收

query和params的区别

使用query,传输的值会在url后面以参数的形式显示出来,可以刷新页面,数据不变,而params不会,一刷新传的值就没了。

3、自定义404页面

在router.js加入以下代码

//引入自己写的404页面
import NotFound from '@/components/views/404'
export default new Router({
  routes: [
    {
      path: '/',
      name: 'index',
      component: index
    },{
      path: "/404",//引用自己写的404页面
      name: "NotFound",
      component: NotFound
    },{
      path: "*", // 此处需特别注意置于最底部,就是将没有配置路由的url都重定向到404
      redirect: "/404"
    }
  ]

})

4、解决跳转新页面不在顶部

有的时候页面太长,点击的跳转新页面的位置在下面,跳转新页面的时候也显示在点击的位置

解决方法:在main.js中加入以下代码

router.afterEach((to,from, next) => {
    window.scrollTo(0,0);
})

5、将Vue项目url地址中的#去掉

问题描述:vue-router 默认为 hash 模式,使用默认的 hash 模式,浏览器 URL 地址中会有一个 #

解决方法:只需要在router.js中将vue-router 设置 history 模式

mode: 'history',

6、动态设置meta标签

网站的访问流量中,有相当一部分都是来自于搜索引擎,而来自于搜索引擎的流量又全部是免费的,所以网站的SEO(Search Engine Optimization 搜索引擎优化)是实现自我营销的一种最直接且最有效的手段。而SEO往往又都是从优化meta标签开始的!

方法1:直接在代码里像下面这么写

方法2: 通过引入vue-meta模块,实现以优雅的方式设置title与meta。

1、安装

npm install vue-meta -S

2、在main.js中引入

import Meta from 'vue-meta';
Vue.use(Meta);

3、使用

效果都如下:

注:以上方法不止一种,其他方法可自行百度

7、打包上线,路径问题

命令行输入:npm run build

打包出来后项目中就会多了一个文件夹dist,这就是我们打包过后的项目。

问题描述:将dist中的文件上传到项目文件夹后显示异常(http:blog.dinganan.cn/myvue)

原因: 打包后的文件是从根目录开始找的

解决方法

第一步: 静态文件路径错误 ,找到config文件夹下的index.js文件,把assetsPublicPath 中的’/’成为’./’

第二步: 背景图片路径错误 , 在build => util.js 里找到ExtractTextPlugin.extract,添加一行代码:

publicPath: '../../'

第三步:路由路径错误, 修改路由文件 src/router/index.js  添加 base: ‘/category/category/’,    这个路径名称根据自己的实际情况来定。

最后运行build打包上传就行了

注:如果使用的是history模式,二级或者三级目录在history模式下必须前后端同时配置

发表评论

电子邮件地址不会被公开。 必填项已用*标注