javascript - Nuxt 子路由重新渲染整个页面
问题描述
我正在尝试使用子路由在更改某些内容的同时使页面上的某些数据保持活动状态。
我在https://codesandbox.io/s/bold-shape-22bom设置了一个简单的示例
单击“猫”,然后将计数器增加几次。然后点击狗,计数器被重置。但我需要计数器来保留它的计数。
我只是从根本上误解了<nuxt-child>
应该做什么?
解决方案
每个页面 (/cat
和/dog
) 都有自己的计数器实例,因此它们彼此独立。要保持计数器处于活动状态,您可以将其移动到布局中。
例如,您可以将计数器移动到它自己的组件中(例如ButtonCounter.vue
)并在布局中使用它:
// components/ButtonCounter.vue
<template>
<div>
<div>
<button @click="counter++">increase</button>
<p>button clicked {{ counter }} times</p>
</div>
</div>
</template>
<script>
export default {
data() {
return {
counter: 0,
};
},
};
</script>
// layout/default.vue
<template>
<div class="container">
<ul style="padding: 20px; border: 1px solid black">
<li><nuxt-link to="/cat">cat</nuxt-link></li>
<li><nuxt-link to="/dog">dog</nuxt-link></li>
</ul>
<div>
<ButtonCounter />
<Nuxt />
</div>
</div>
</template>
推荐阅读
- python - (Python 3.x 和 SQL)检查多个表中是否存在条目并转换为二进制值
- process - CPU 突发和 I/O 突发
- javascript - 功能范围是什么?我应该使用已经实例化的变量吗?
- php - 如何修复“while”循环和 php 构建仅在 HTML 表中显示一个结果的 HTML 表以及没有 HTML 表的所有其他结果
- javascript - 用 p5.js 连接 HTML 输入页面
- swift - 如何使用 rgba16Float MTLPixelFormat 显示 MTKView
- python - AWS Lambda 没有返回值
- java - 如何停止 JButton 背景仅显示为边框
- javascript - 根据li JQuery中输入元素的值删除元素li
- c# - 使用 Excel 打开时生成的 csv 文件,不显示列中的值