我正在使用vuejs,根据用户是否登录,我需要调整顶栏中两个div的大小和内容.

<div id='search' width="400px"></div><div id="login" width="200px"><img></div>

当他们登录时,应该是这样的:

<div id='search' width="200px"></div><div id="login" width="400px"><div id='somecontent></div><div id='morecontent'></div></div>

我知道我可以通过完全硬编码这两种语言,然后使用v-if语句来实现这一点,但我想知道是否有更好的方法.

推荐答案

<div id='search' :style="{width: loggedIn ? '200px' : '400px'}"></div>
<div id="login" :style="{width: loggedIn ? '400px' : '200px'}">
  <div id='somecontent' v-if="loggedIn"></div>
  <div id='morecontent' v-if="loggedIn"></div>
  <img v-if="!loggedIn">
</div>

可以使用v-bind在vuejs中绑定样式

new Vue({
  ...
  data: {
    loggedIn: false
  }
  ...
})

fiddle

Vue.js相关问答推荐

Vue.js编译的render函数不起作用

在预渲染模式下部署 nuxt 3 时出错

在 Vue 中更改 json 数据后,如何在屏幕上重新呈现表格组件?

如何在 vue 组件中定义变量? (Vue.JS 2)

如何使用 vue 或 javascript 向服务器发送密码?

VueJS - 将单独的组件加载到 vue 实例中

使用带有 v-date-picker 的 new Date() 不起作用

如何将Vue的主应用程序渲染到body元素?

将 props 传递给 Vue 组件中的元素属性

v-model 不会检测到 jQuery 触发事件所做的更改

使用 vue-test-utils 配置过滤器

Vuetify 单选按钮未显示为选中状态

如何在 vue 3 中获取路由的参数?

为什么 v-model 不适用于数组和 v-for 循环?

try 通过 Vue.js 中的渲染传递props并观察它们

在 vue.js 组件中react this.props.children

使密码字符隐藏在 Vuetify 字段中

VS Code - 在 .vue 文件中启用 autoClosingTags 选项

在 Vue 单元测试中单击按钮时触发表单提交

Vue.js 显示空格(换行符)