首页 > 代码库 > vue 项目搭建
vue 项目搭建
cli 方式安装 集成了内置webpack 模块
安装步骤
1、全局安装 vue-cli
$ npm install --global vue-cli
2、 创建一个基于 webpack 模板的新项目
$ vue init webpack my-project
3、安装依赖,走你
$ cd my-project
$ npm install
$ npm run dev
如果npm安装慢的话 可以使用淘宝镜像
npm install -g cnpm --registry=https://registry.npm.taobao.org cnpm install webpack -D
项目结构简单介绍
build 目录是一些webpack的文件,配置参数什么的,一般不用动
config 是vue项目的基本配置文件
node_modules 是项目中安装的依赖模块
src 源码文件夹,基本上文件都应该放在这里。
—assets 资源文件夹,里面放一些静态资源
—components 这里放的都是各个组件文件
—App.vue App.vue组件
—main.js 入口文件
static 生成好的文件会放在这个目录下。
test 测试文件夹,测试都写在这里
.babelrc babel 编译参数,vue开发需要babel编译
.editorconfig 看名字是编辑器配置文件,不晓得是哪款编辑器,没有使用过。
.gitignore 用来过滤一些版本控制的文件,比如node_modules文件夹
index.html 主页
package.json 项目文件,记载着一些命令和依赖还有简要的项目描述信息
README.md 介绍自己这个项目的,想怎么写怎么写。不会写就参照github上star多的项目,看人家怎么写的
package.json
ependencies:项目发布时的依赖
devDependencies:项目开发时的依赖
scripts:编译项目的一些命令
.babelrc文件定义了ES6的转码规则,基于ES6编写的js代码在编译时都会被babel转码器转换为ES5代码。
min.js文件介绍
这里是入口文件,可以引入一些插件或静态资源,当然引入之前要先安装了该插件,在package.json文件中有记录。
/*引入Vue框架*/ import Vue from ‘vue‘ /*引入资源请求插件*/ import VueResource from ‘vue-resource‘ /*重置样式*/ import "assets/css/base.css" /*基本JS*/ import "assets/js/common.js" /*引入路由设置*/ import "./routers.js" /*使用VueResource插件*/ Vue.use(VueResource)
App.vue
这是一个标准的vue组件,包含三个部分,一个是模板,一个是script,一个是样式,这里需要了解vue的基础。
<template> <div id="app"> <img src=http://www.mamicode.com/"./assets/logo.png"> <hello></hello> </div> </template> <script> import Hello from ‘./components/Hello‘ export default { name: ‘app‘, components: { Hello } } </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>
vue-route
官网路由中文手册
作用:
通过管理url实现url和组件的对应,
通过url进行组件之间的切换
必须引入router组件 是单独文件
<script src=http://www.mamicode.com/"https://unpkg.com/vue/dist/vue.js"></script> <script src=http://www.mamicode.com/"https://unpkg.com/vue-router/dist/vue-router.js"></script> <div id="app"> <h1>Hello App!</h1> <p> <!-- 使用 router-link 组件来导航. --> <!-- 通过传入 `to` 属性指定链接. --> <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 --> <router-link to="/foo">Go to Foo</router-link> <router-link to="/bar">Go to Bar</router-link> </p> <!-- 路由出口 --> <!-- 路由匹配到的组件将渲染在这里 --> <router-view></router-view> </div>
模板中使用标签介绍
自定义导航标签
ag="li" tag="div" <router-view tag="li"></router-view> <router-link to="/user" tag="div" event="mouseover"> 用户</router-link> <router-link to="/home" tag="li"> 主页</router-link> <router-link to="/about" tag="li" active-class="lishuang-active"> 关于</router-link>
统一设置class 名字
new VueRouter({ mode: ‘history‘, linkActiveClass: ‘active‘, //给所有导航统一设置class名字
单独给导航设置样式名字
<router-link active-class="lishuang-active"> active-class="lishuang-active"
exact 精准匹配
当你把导航设置到 ‘/‘ 导航的激活样式 无论点击哪个都会匹配到跟,这是问题,
在导航里面添加 exact 就可以把这个问题解决
<router-link to="/" exact tag="li"> <a> 首页 </a></router-link> <span class="sr-only">(current)</span>
命名视图
在同级同时展示多个视图,而不是嵌套
<router-view class="text-center" name="slider"></router-view> <router-view class="text-center"></router-view> 在路由里面写: 记住 component -> components { path: ‘/blog‘, components: { default:Blog, slider:Slider } }
动态路径
我们经常需要把某种模式匹配到的所有路由,全都映射到同个组件。例如,我们有一个 User 组件,对于所有 ID 各不相同的用户,都要使用这个组件来渲染。那么,我们可以在 vue-router 的路由路径中使用『动态路径参数』
space:
当这个页面是商品列表
点击这个列表进去商品详情
这个商品详情展示信息,就是通过某个商品的id 去请求api得到的数据。
这个id 怎么来呢?
space2:
当点击用户列表的时候 进入详情,需要根据url上面携带的id 来请求api数据
axios使用
安装
npm i axios vue-axios -D
在main.js 入口文件里面写
import Axios from ‘axios‘ import VueAxios from ‘vue-axios‘ Vue.use(VueAxios,Axios)
在其它组件里面调用
export default { name: ‘blog‘, created () { this.getGoods() }, methods: { getGoods () { this.$http.get(‘http://lc.shudong.wang/api_goods.php‘) .then((res) => { console.log(res.data) }) .catch((error) => { console.log(error) }) } } }
vue UI组件
使用目的:
提高开发效率
直接拿过来用
bootstrap
elementUi
安装
npm ielement-ui -D
引入 main.js 入口文件
import ElementUI from ‘element-ui‘ import ‘element-ui/lib/theme-default/index.css‘
Vue.use(ElementUI)
vue 项目搭建