一、安装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模式下必须前后端同时配置