nuxtjs目录结构
其目录结构包含了一个项目开发中通用的东西
序列号 | CPU | RAM | HDD | 带宽 | 售价(美元) | 免费试用 |
---|---|---|---|---|---|---|
香港服务器1 | E5-2620 | 32G | 1T HDD | 50M/无限流量 | $196.00 | 立即申请 |
香港服务器2 | E5-2650 | 32G | 1T HDD | 50M/无限流量 | $256.00 | 立即申请 |
香港服务器3 | E5-2680 | 32G | 1T HDD | 50M/无限流量 | $316.00 | 立即申请 |
香港服务器4 | E5-2690 | 32G | 1T HDD | 50M/无限流量 | $336.00 | 立即申请 |
香港服务器5 | E5-2697 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器6 | E5-2620*2 | 32G | 1T HDD | 50M/无限流量 | $376.00 | 立即申请 |
香港服务器7 | E5-2650*2 | 32G | 1T HDD | 50M/无限流量 | $436.00 | 立即申请 |
香港服务器8 | E5-2680*2 | 32G | 1T HDD | 50M/无限流量 | $476.00 | 立即申请 |
香港服务器9 | E5-2690*2 | 32G | 1T HDD | 50M/无限流量 | $556.00 | 立即申请 |
香港服务器10 | E5-2697*2 | 32G | 1T HDD | 50M/无限流量 | $596.00 | 立即申请 |
香港服务器11 | E5-2680v4*2 | 32G | 1T HDD | 50M/无限流量 | $696.00 | 立即申请 |
香港服务器12 | E5-2698v4*2 | 32G | 1T HDD | 50M/无限流量 | $796.00 | 立即申请 |
assets 存放静态资源
componets 存放vue组件,这类组件类似于react中的无状态组件,可复用的用于构建页面内容,但不具有nuxtjs提供的特性
layouts 存放布局组件,但我感觉实际编写代码时作用不大?
middleware 存放中间件,有express或者koa开发经验的话,应该很容易理解
pages 类似于spa中的views文件夹,是整个项目中最重要的内容,值得一提的是,nuxtjs会根据pages的结构自动生成router
plugins 用于存放插件的配置文件,以elementui为例
importVuefrom'vue'importElementfrom'element-ui'importlocalefrom'element-ui/lib/locale/lang/en'Vue.use(Element,{locale})
这里用Vue.use()全局注册了elementui,后面需要按需引入的时候,还得修改
static 存放静态文件,文件夹中的内容会被映射的根目录下,并且不会被webpack编译处理
store 和vuex相关,存放spa单页应用中的vuex配置
nuxt.config.js 是nuxtjs的配置文件,可以配置项目的入口文件,类似于koa中的/bin/www
值得一提的是 ~ 可以代表根目录,不用再编写../../之类繁琐的路径url
nuxt.config.jsexportdefault{mode:'universal',//选择单页模式还是多页模式/***Headersofthepage*///由于项目没有html文件,这里可以直接指定title,以及其他配置head:{title:process.env.npm_package_name||'',meta:[{charset:'utf-8'},{name:'viewport',content:'width=device-width,initial-scale=1'},{hid:'description',name:'description',content:process.env.npm_package_description||''}],link:[{rel:'icon',type:'image/x-icon',href:'/favicon.ico'}]},/***Customizetheprogress-barcolor*/loading:{color:'#fff'},/***GlobalCSS*/css:['element-ui/lib/theme-chalk/index.css'],//全局引入css文件/***PluginstoloadbeforemountingtheApp*/plugins:['@/plugins/element-ui'],/***Nuxt.jsdev-modules*/buildModules:[],/***Nuxt.jsmodules*/modules:[],/***Buildconfiguration*//build:{transpile:[/^element-ui/],/***Youcanextendwebpackconfighere*/extend(config,ctx){}}}
其实配置文件还是比较通俗易懂的,其他的配置要看文档的api了
路由基础路由
是由nuxtjs自动根据pages的结构生成的
动态路由
给vue文件或者文件夹添加_ 即可。对于动态路由可以添加路由校验,如果不满足要求,那么返回错误页面
嵌套路由
在vue文件的同名文件夹中编写vue页面即可
pages/--|users/-----|_id.vue-----|index.vue--|users.vue
中间件
在middleware文件夹中添加js文件,其将会在下一个页面跳转之前执行,其接收的参数是ctx。
中间件执行流程顺序:
nuxt.config.js
匹配布局
匹配页面
也就是说,应该在nuxt.config.js layout或者pages中添加middleware之后,中间件才会被执行
类似于这样
//vue文件中exportdefault{middleware:'stats'//中间件名}//nuxt.config.js中module.exports={router:{middleware:'stats'}}
视图
官网的图应该很清晰的展现了nuxtjs视图
创建app.html
可以修改ie的条件表达式等,中小型项目其实没有必要改
//默认模板
{{HEAD}}{{APP}}//修改后的模板{{HEAD}}{{APP}}布局
即通过修改layout/default.vue可以修改页面的布局
类似于spa中的app.vue的作用
可以在默认布局中添加header之类的东西
但是如果使用自定义layout,必须在pages中指定
pages
这是nuxtjs中最主要的内容
Hello{{name}}!
一些不同于传统vue的特殊项
上一篇: MySQL数据库的数据表类型介绍
下一篇: 服务器缓存的读写策略