Nuxt.js 通用Vue.js ssr
ssr:服务器端 Vue渲染html 返回浏览器
SEO:VUE SPA(单页) 新闻 搜索引擎
SPA: 快速
必须用到SSR的地方
新闻、博客、。。需要搜索引擎提供流量的应用都需要用到ssr
1.基于VUE
2.自动代码分层
3.强大的路由功能,支持异步数据
4.静态文件服务
5.es6/es7语法支持
6.打包和压缩js和css
7.html头部标签管理
8.本地开发支持热加载
9.集成eslint
10.支持各类样式预处理器:SASS,LESS,STYLUS等等
1.html
2.css
3.vue
npm install vue-cli -g
查看版本
vue -V
在指定目录下
vue init nuxt/starter
初始化后,更新包文件
npm install
启动项目
npm run dev
一般不需要动,是npm run bulid自动生成的
放置less sass javascript 图标什么的
自己写的组件
布局,
放置中间件的位置
自己编写的页面
放js的一些插件,例如弹出插件
静态文件,例如图片
状态管理 vuex的知识
eslintrc的配置文件,规范代码编写风格
上传的规则,设置不上传的文件
head:所有页面的头部
loading:加载的样式
build:扩展
默认包管理:
dependencies:生成环境的配置
devDependencies:产品环境的配置
package.json文件内添加:
"config":{
"nuxt":{
"host":"127.0.0.1",//设置的ip
"port":"1818"//设置的端口
}
},
~:根目录匹配符
在nuxt.config下添加
css:['~assets/css/normailze.css'],
在nuxt.config文件build下
loaders:[
{
test:/\.(png|jpg|gif|svg)$/,
loader:'url-loader',
query:{
limit:10000,
name:'img/[name].[hash].[ext]'
}
}
],
about
普通跳转
about
带参跳转
news
接收参数
this.$route.params.newsId
动态路由
动态路由文件名称需要_开头,例_id,id才是文件名称
具体案例如下:
news文件(调用动态路由处的文件):
news index page
- 回到首页 {{$route.params.newsId}}
- news1
nuxt-link
- news3
_id文件(动态路由文件):路由中的参数id就是文件名
News--contents
NewsId:{{$route.params.id}}
home
注:export default中的name需要去除
动态路由文件名称需要_开头,例_id,id才是文件名称
具体案例如下:
news文件(调用动态路由处的文件):
news index page
nuxt-link
_id文件(动态路由文件):路由中的参数id就是文件名
News--contents
NewsId:{{$route.params.id}}
home
注:export default中的name需要去除
路由校验
在动态路由 export default中定义校验规则,例如:设置只允许参数是数字
validate({params}){
return /^\d+$/.test(params.id);
}
news1//允许通过,允许渲染
news2//不允许通过,不进行渲染
全局css样式添加
//进入的动画
.page-enter-active,.page-leave-active{
transition: opacity 2s;
}
//离开的动画
.page-enter,.page-leave-active{
opacity: 0;
}
css添加动画
//注意test
.test-enter-active,.test-leave-active{
transition: all 2s;
font-size: 12px;
}
.test-enter,.test-leave-active{
opacity: 0;
font-size: 40px;
}
单独设置的页面中的export default 中添加
transition:'test' //test 和css中的test类似
默认模板与默认布局的区别,默认模板的级别最高,且可以改变头部内容,默认布局可以不需要重启服务器就可以生效
在根目录下,新建app.html nuxt会默认将其当作模板
例:
{{HEAD}}
这是公共的模板,每次更改需要重启
{{APP}}
//其中 {{HEAD}}为引入nuxt.config.js中的head内容
//{{APP}}为真实页面占位
在layouts文件下的default内进行修改,例如
这是默认布局内的全局内容,不需要重启就可以生效!!!
在layouts文件夹下创建error文件
通过props:['error']用来接收错误代码
通过error.statusCode来判断错误信息,代码案例如下
404页面,你需要的页面没有被找到
500页面,服务器错误
在需要个性化标签设置的页面的export default中使用head(){}设置个性化
例如:
head(){
return{
title:"ssssss",
meta:[
{hid:'description',name:'news1',content:'this is new page'}
]
}
}
title:头部文字
meta head标签内的内容,hid需要和nuxt.config.js中的head对象内的hid相同,不然会有问题
在页面渲染之前从服务器上获取数据对象,获取后再显示页面内容
//安装axios
npm install axios --save
1 img引入 使用 ~直接到达根目录
2 背景映入 也是使用~到达根目录
.div-class-img{
width: 500px;
height: 300px;
background-image: url("~static/img/logo.png");
}
使用 npm run generate 生成静态文件