Vue构建项目
构建Vue项目
按照官网教程安装
//先安装脚手架
cnpm i -g vue-cli
//查看项目目标列表: webpack browserify pwa 等项目模板
vue list
//使用webpack模板创建项目
vue init webpack my-project
//进去新创建的文件夹
cd my-project
//打开package.json 看scripts字段
//dev 可以使用npm run dev 或者 npm start 开启开发模式
//build 可以使用npm run build 打包项目,生成最终
//还有其他的命令根据创建项目的时候的选择决定
webpack模板默认安装了vue、vue-router、postcss、babel,如果需要其它的可以自己再安装。
安装sass
cnpm i --save-dev node-sass sass-loader
安装好后就可以在.vue文件style便签设置 <style scoped lang="scss">就可以开启scss功能
安装axios
cnpm i --save axios
在main.js文件中引入axios并将其指定为Vue.prototype.$http = axios
//main.js
//全局的Vue,所有组件都是这个Vue的实例
import Vue form 'vue';
import axios from 'axios';
//由于所有Vue的组件都继承于这个全局的Vue,所有的组件都能够通过$http拿到axios
//自定义全局属性要带'$'
Vue.prototype.$http = axios;
安装vuex
cnpm i --save vuex
在main.js文件中引入Vuex,使用Vue.use(Vuex)且创建store,然后将store添加到全局 new Vue({store})
import Vue from 'vue'
import Vuex from 'vuex'
import App from './App'
Vue.use(Vuex)
const store = new Vuex.Store({
state: {
count: 0
}
})
new Vue({
el: '#app',
component: App,
store,
template: "</App>"
})
项目结构
/src/assets/components/containers/modules/router/scssApp.vuemain.js
/assets
主要放图片、字体等静态文件
/components
公用组件,所有页面都可以公用的组件,或者单例组件,像弹出窗、按钮、等可以多次复用的组件
/containers
页面组件,router中的路由组件,相对路由来划分这个文件夹的结构
比如路由/user/change_psw 和/login
/containersUser.vue/userChangePsw.vue
Login.vue
import User from '@/containers/User';
import ChangePsw from '@/containers/user/ChangePsw';
import Login from '@/containers/Login';
const router = [
{
// 匹配 /user
path: '/user',
component: User,
children: [
{
// 匹配 /user/change_psw
path: 'change_psw',
component: ChangePsw
}
]
}, {
// 匹配 /login
path: '/login',
component: Login
}
]
/modules
Vuex的状态管理,这里按每个页面划分,当然还可以别的方法,这里只供参考
/modulesmodules.jsindex.jsuser.js
modules.js负责将所有模块收集起来(类似reduce的合成),index.js和user.js分别管理页面index和页面user的全局状态
//modules.js
import index from './index'
import user from './user'
export default {
index,
user
}
//index.js
export default {
namespaced: true,
state: {
a: 1
}
}
//user.js
export default {
namespaced: true,
state: {
a: 2
}
}
除了这些模块的状态,还有一个全局的状态,如果全局的状态有点大,可以将其独立成一个文件。
若超大,再开文件夹,再细化。同理,页面状态也可以。
最后在mian.js装载这些模块
import modules from '@/modules/modules';
import Vuex from 'vuex';
import Vue from 'vue';
const store = new Vuex.Store({
modules,
// ...定义全局的状态
})
new Vue({
store,
// ... 其他的配置
})
/router
如果项目比较大,可以按模块来划分这个文件夹的结构。小项目,一个文件即可。
/routerbuy-ticket.jsindex.js
和别的文件一样,index.js是所有模块路由的总和,buy-ticket.js是买票模块的路由
由于vue的路由是可以嵌套的,我们完全可以拆分路由,然后再合并。
//buy-ticket.js
export default [
{
//路由配置
},
{
//路由配置
}
]
//index.js 借助数组扩展符 或者 成为嵌套路由children的值
import Vue from 'vue';
import Router from 'vue-router';
import buyTicketRouters from '@/router/buy-ticket';
import Index from '@/containers/Index';
import Ticket from '@/containers/Ticket';
Vue.use(Router);
export default new Router({
routes: [
{
path: '/',
components: Index
},
...buyTicketRouters,
//采用children
{
path: '/ticket'
components: Ticket,
children: buyTicketRouters
}
]
})
具体项目,要按项目的功能来拆分,以上只供参考。
/scss
这个样式项目结构,一言难尽,可以了解我的scss相关的文章
Vue构建项目的更多相关文章
- vue 构建项目vue-cli
1.首先得有node和npm的环境,node的下载:http://nodejs.org/download/.安装node之后,npm也自动生成了,显示版本号就意味着安装成功 2.接下来就是安装vue- ...
- vue 构建项目遇到的请求本地json问题
在本地测试的json没有问题,但是打包后,发现json 的路径不对了,变成了绝对路径 解决方法: 建立的json文件需要放置 根目录/static下.如项目名/static/data.json,这边 ...
- vue 构建项目 文件引入
1.vue引用依赖文件. 举例:axios 先安装 axios.如果直接安装 vue-axios 会报错 npm install axios npm install --save axios vue ...
- vue 构建项目遇到的问题
1.我在打包完成后,打开index.html文件发现地址并没有携带路由. config下的 index.js 中的build命令的配置有一个属性叫assetsPublicPath,它的值为‘/’.意思 ...
- 关于vue构建项目的一些指令
第一步: brew install nodejs(MAC机子下) Windows直接官网下载对应版本node.js 第二步: 获取nodejs模块安装目录访问权限(Windows系统忽略)sudo ...
- 【记录】vue构建项目npm install错误run `npm audit fix` to fix them, or `npm audit` for details
今天构建vue项目执行npm install初始化后报错 run `npm audit fix` to fix them, or `npm audit` for details 出现这问题控制台会有一 ...
- vue构建项目全过程
1.node版本请更新到6.9.X版本以上,不然npm依赖会出问题 2.命令行里运行npm install --global vue-cli 3.npm install --global webpac ...
- Webpack+Vue构建项目
第一步:单纯的搭建出来我们的项目,并且通过webpack打包一个bundle.js然后运行起来 步骤: 1.建立项目必要的文件和文件夹(见截图) 2.配置webpack.develop.config. ...
- vue构建项目步骤
1.node版本请更新到6.9.X版本以上,不然npm依赖会出问题 2.命令行里运行npm install --global vue-cli 3.npm install --global webpac ...
随机推荐
- 51nod1402(贪心)
题目链接:http://www.51nod.com/onlineJudge/questionCode.html#!problemId=1402 题意:中文题诶- 思路:贪心 对于一个桩点,如果我们只考 ...
- bzoj3453: tyvj 1858 XLkxc(拉格朗日插值)
传送门 \(f(n)=\sum_{i=1}^ni^k\),这是自然数幂次和,是一个以\(n\)为自变量的\(k+1\)次多项式 \(g(n)=\sum_{i=1}^nf(i)\),因为这东西差分之后是 ...
- IT兄弟连 JavaWeb教程 MVC设计模式
MVC是Model-View-Controller的简称,即模型-视图-控制器.MVC是一种设计模式,它强制性地把应用程序的数据展示.数据处理和流程控制分开.MVC把应用程序分成3个核心模块:模型.视 ...
- Android近场通信---NFC基础(四)(转)
转自http://blog.csdn.net/think_soft/article/details/8184539 从Intent中获取信息 如果因为NFC的Intent而启动一个Activity,那 ...
- vue-cli 【flexible】屏幕字体自适应布局及配置
0.前言: 很多前端小伙伴在写页面尤其是移动端页面的时候,要求页面布局以及字体大小随屏幕宽度变化而随之按比例自适应[注:非响应式],那么,在vue-cli脚手架中应该如何去实现呢? 1.安装flexi ...
- __str__,__repr__,__format__
__str__,__repr__ __str__:控制返回值,并且返回值必须是str类型,否则报错 __repr__:控制返回值并且返回值必须是str类型,否则报错 __repr__是__str__的 ...
- Hibernate-Session使用的背后
一.Session缓存的介绍 简单说,缓存介于应用程序和数据库之间,是临时存放数据的内存区域,作用是减少对数据库的访问次数,从而提高应用程序的运行性能.Session有一个缓存,也叫hibernate ...
- Windows忘记mysql的密码
1.查看mysql的安装路径 show variables like "%char%"; 路径:C:\Program Files\MySQL\MySQL Server 5.7\ 2 ...
- Web Scalability for Startup Engineers Tip&Techniques for Scaling You Web Application --读书笔记
Web Scalability for Startup Engineers Tip&Techniques for Scaling You Web Application 第1章和第2章讲述可伸 ...
- 分享一套Code Smith 搭建N层架构模板
开篇 平常开发时,由于冗余代码过多,程序员做重复的工作过多势必会影响开发效率.倘若 对重复性代码简单的复制.粘贴,虽然也能节省时间,但也需仔细一步步替换,这无疑也是一件费力的事.这时我们急需代码生成工 ...