开场白
开始使用
API
- API: The <client-only> Component
- API: <nuxt-child> 组件
- API: <nuxt-link> 组件
- API: <nuxt> 组件
- API: 构建配置
- API: buildDir 属性
- API: 缓存配置
- API: CSS 配置
- API: dev 属性配置
- API: dir 属性
- API: 环境变量配置
- API: generate 属性配置
- API: globalName 属性
- API: head 属性配置
- API: The hooks Property
- API: ignore 属性
- API: The loading indicator Property
- API: loading 属性配置
- API: The mode Property
- API: modern 属性
- API: modules 属性
- API: modulesDir 属性
- API: performance 属性
- API: plugins 属性配置
- API: The render Property
- API: rootDir 属性配置
- API: router 属性配置
- API: server 属性
- API: serverMiddleware 属性
- API: srcDir 属性配置
- API: transition 属性配置
- API: vue.config 属性
- API: watch 属性
- API: watchers 属性
- API: 上下文对象
- API: asyncData 方法
- API: The Builder Class
- API: The Generator Class
- API: The ModuleContainer Class
- API: The Nuxt Class
- API: The Renderer Class
- API: Nuxt Modules Intro
- API: nuxt.renderAndGetWindow(url, options)
- API: nuxt.renderRoute(route, context)
- API: nuxt.render(req, res)
- API: Nuxt(options)
- API: fetch 方法
- API: head 方法
- API: key 属性
- API: layout 属性
- API: loading 属性
- API: middleware 属性
- API: scrollToTop 属性
- API: transition 属性
- API: validate 方法
- API: The watchQuery Property
配置
- 外部资源
- 预处理器
- JSX
- Postcss 插件
- 如何扩展 Webpack 的配置
- Webpack 插件
- Caching Components
- 如何更改应用的主机和端口配置?
- 如何集成 Google 统计分析服务?
- 如何发起跨域资源请求?
- How to extend Webpack to load audio files?
部署
- 如何使用 Now.sh 进行部署?
- 使用 Surge.sh 部署
- 在 Google App Engine 上部署
- Netlify 部署
- AWS: S3+Cloudfront 部署
- Dokku 部署
- nginx 代理
- 如何部署至 GitHub Pages?
- 部署至 Heroku
其他
API: router 属性配置
router 属性让你可以个性化配置 Nuxt.js 应用的路由(vue-router)。
base
- 类型:
String
- 默认值:
'/'
应用的根URL。举个例子,如果整个单页面应用的所有资源可以通过 /app/
来访问,那么 base
配置项的值需要设置为 '/app/'
。
例如 (nuxt.config.js
):
module.exports = {
router: {
base: '/app/'
}
}
base
被设置后,Nuxt.js 会自动将它添加至页面中: <base href="{{ router.base }}"/>
。
该配置项的值会被直接传给 vue-router 的构造器。
routeNameSplitter
- 类型:
String
- 默认:
'-'
您可能希望更改Nuxt.js使用的路由名称之间的分隔符。您可以通过配置文件中的routeNameSplitter
选项执行此操作。想象一下,我们有页面文件pages/posts/_id.vue
。Nuxt将以编程方式生成路由名称,在本例中为posts-id
。因此,将routeNameSplitter
配置修改为/
,这样路由名称生成为posts/id
。
例如 (nuxt.config.js
):
export default {
router: {
routeNameSplitter: '/'
}
}
extendRoutes
- 类型:
Function
您可能希望扩展Nuxt.js
创建的路由。您可以通过extendRoutes
选项执行此操作。
例如添加自定义路由:
nuxt.config.js
export default {
router: {
extendRoutes (routes, resolve) {
routes.push({
name: 'custom',
path: '*',
component: resolve(__dirname, 'pages/404.vue')
})
}
}
}
路由的模式应该遵循vue-router模式。
linkActiveClass
- 类型:
String
- 默认值:
'nuxt-link-active'
全局配置 <nuxt-link>
组件默认的激活类名。
例如 (nuxt.config.js
):
module.exports = {
router: {
linkActiveClass: 'active-link'
}
}
该配置项的值会被直接传给 vue-router 的构造器。
linkExactActiveClass
- 类型:
String
- 默认:
'nuxt-link-exact-active'
全局配置 <nuxt-link>
默认的active class。
例如 (nuxt.config.js
):
export default {
router: {
linkExactActiveClass: 'exact-active-link'
}
}
此选项直接提供给vue-router linkexactactiveclass.
linkPrefetchedClass
- 类型:
String
- 默认:
false
全局配置<nuxt-link>
默认值(默认情况下禁用功能)
例子 (nuxt.config.js
):
export default {
router: {
linkPrefetchedClass: 'nuxt-link-prefetched'
}
}
middleware
- 类型:
String
或Array
- 数值元素类型:
String
- 数值元素类型:
为应用的每个页面设置默认的中间件。
例如:
nuxt.config.js
module.exports = {
router: {
// 在每页渲染前运行 middleware/user-agent.js 中间件的逻辑
middleware: 'user-agent'
}
}
middleware/user-agent.js
export default function (context) {
// 给上下文对象增加 userAgent 属性(增加的属性可在 `asyncData` 和 `fetch` 方法中获取)
context.userAgent = process.server ? context.req.headers['user-agent'] : navigator.userAgent
}
了解更多关于中间件的信息,请参考 中间件指引文档。
mode
- 类型:
String
- 默认值:
'history'
配置路由的模式,鉴于服务端渲染的特性,不建议修改该配置。
示例 (nuxt.config.js
):
module.exports = {
router: {
mode: 'hash'
}
}
该配置项的值会被直接传给 vue-router 的构造器。
scrollBehavior
- 类型:
Function
scrollBehavior
配置项用于个性化配置跳转至目标页面后的页面滚动位置。每次页面渲染后都会调用 scrollBehavior
配置的方法。
scrollBehavior
的默认配置为:
const scrollBehavior = function (to, from, savedPosition) {
// if the returned position is falsy or an empty object,
// will retain current scroll position.
let position = false
// if no children detected and scrollToTop is not explicitly disabled
if (
to.matched.length < 2 &&
to.matched.every(r => r.components.default.options.scrollToTop !== false)
) {
// scroll to the top of the page
position = { x: 0, y: 0 }
} else if (to.matched.some(r => r.components.default.options.scrollToTop)) {
// if one of the children has scrollToTop option set to true
position = { x: 0, y: 0 }
}
// savedPosition is only available for popstate navigations (back button)
if (savedPosition) {
position = savedPosition
}
return new Promise((resolve) => {
// wait for the out transition to complete (if necessary)
window.$nuxt.$once('triggerScroll', () => {
// coords will be used if no selector is provided,
// or if the selector didn't match any element.
if (to.hash) {
let hash = to.hash
// CSS.escape() is not supported with IE and Edge.
if (typeof window.CSS !== 'undefined' && typeof window.CSS.escape !== 'undefined') {
hash = '#' + window.CSS.escape(hash.substr(1))
}
try {
if (document.querySelector(hash)) {
// scroll to anchor by returning the selector
position = { selector: hash }
}
} catch (e) {
console.warn('Failed to save scroll position. Please add CSS.escape() polyfill (https://github.com/mathiasbynens/CSS.escape).')
}
}
resolve(position)
})
})
}
举个例子,我们可以配置所有页面渲染后滚动至顶部:
nuxt.config.js
:
module.exports = {
router: {
scrollBehavior (to, from, savedPosition) {
return { x: 0, y: 0 }
}
}
}
该配置项的值会被直接传给 vue-router 的构造器。
parseQuery / stringifyQuery
- 类型:
Function
提供自定义查询字符串解析/字符串化功能。覆盖默认值。
此选项直接提供在vue-router parseQuery / stringifyQuery.
prefetchLinks
Nuxt v2.4.0 添加
- 类型:
Boolean
- 默认:
true
在视图中检测到时,配置<nuxt-link>
用来预获取代码分割页面。需要支持IntersectionObserver(参阅 CanIUse)。
我们建议使用Polyfill.io等服务有条件地填充此功能:
nuxt.config.js
export default {
head: {
script: [
{ src: 'https://polyfill.io/v2/polyfill.min.js?features=IntersectionObserver', body: true }
]
}
}
要禁用特定链接上的预取,可以使用no-prefetch
属性:
<nuxt-link to="/about" no-prefetch>About page not pre-fetched</nuxt-link>
要全局禁用所有链接上的预取,请将prefetchLinks
设置为false
:
// nuxt.config.js
export default {
router: {
prefetchLinks: false
}
}
fallback
- 类型:
boolean
- 默认:
false
当浏览器不支持history.pushState但模式设置为history时,控制路由器是否应回退。
将此设置为false
实质上会使每个路由器链接导航在IE9中刷新整页。当应用程序是服务器呈现并且需要在IE9中工作时,这很有用,因为hash模式URL不适用于SSR。
此选项直接提供在vue-router fallback.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论