Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js Nuxt:根据数据动态设置page.vue中的布局_Vue.js_Nuxt.js - Fatal编程技术网

Vue.js Nuxt:根据数据动态设置page.vue中的布局

Vue.js Nuxt:根据数据动态设置page.vue中的布局,vue.js,nuxt.js,Vue.js,Nuxt.js,我可以根据数据变量设置页面布局吗 我有以下文件夹结构: layouts/ --default.vue --custom.vue pages/ --page.vue 我在Page.vue中尝试了以下操作: export default { data () { return { value: '' } }, layout () { this.value === 'a' ? 'custom' : 'default' } async asyncData ({...}) { //

我可以根据数据变量设置页面布局吗

我有以下文件夹结构:

layouts/
--default.vue
--custom.vue
pages/
--page.vue
我在Page.vue中尝试了以下操作:

export default {
  data () {
    return { value: '' }
  },
  layout () { this.value === 'a' ? 'custom' : 'default' }
  async asyncData ({...}) { //value is set here }
但它返回错误,无法读取未定义的属性“value”。 如何访问数据中的内容以动态决定页面应使用的布局?

表示布局也可以是访问上下文的函数

export default {
  layout: 'blog',
  // OR
  layout (context) {
    return 'blog'
  }
}
我想在中,这就是您所需要的一切。

表示布局也可以是一个访问上下文的函数

export default {
  layout: 'blog',
  // OR
  layout (context) {
    return 'blog'
  }
}

我想在中,您需要的就是这些内容。

您无法动态更改页面中的布局,因为布局是此页面的父级,您无法从其子级更改它


所以,尝试在布局中获取数据并在布局级别更改它

您无法在页面中动态更改布局,因为布局是此页面的父级,您无法从其子级更改它


所以,尝试在布局中获取数据并在布局级别更改它

如何通过上下文获取页面数据?我不确定这是否可行,但也许您可以通过vuex存储或在组件外部收集数据并在组件内使用,但也可以在布局方法内使用。如何通过上下文获取页面数据?我不确定这是否可行,但是,也许您可以使用vuex存储或在组件外部收集数据,并在组件内以及布局方法内使用它