vue中的与,或,非

核心概念:Vue 模板中的逻辑运算

在 Vue 的模板中,我们经常需要根据条件来显示或隐藏内容、动态绑定类名和样式等。这时就会用到 JavaScript 的逻辑运算符:&& (与)、|| (或)、! (非)。

这些运算符在 Vue 模板中的工作方式与在纯 JavaScript 中完全一致。


1. 与 (AND) - &&

  • 功能:只有当两个操作数都为真值时,整个表达式才返回真。如果第一个操作数为假,则直接返回第一个操作数的值( falsy value );否则返回第二个操作数的值。

  • 模板中的应用 :常用于条件渲染。例如,"当某个条件成立时,才渲染某个元素"。

    <template>

    欢迎,{{ user.name }}!

    请登录

    复制代码
      <!-- 另一个例子:当数据加载完成且有数据时才显示列表 -->
      <ul v-if="!loading && items.length">
        <li v-for="item in items" :key="item.id">{{ item.title }}</li>
      </ul>
      <p v-else-if="loading">加载中...</p>
      <p v-else>暂无数据</p>
    </div>
    </template> <script> export default { data() { return { user: { loggedIn: true, name: '张三' }, loading: false, items: [{ id: 1, title: '项目1' }] }; } }; </script>

页面展示


2. 或 (OR) - ||

  • 功能:如果第一个操作数为真,则返回第一个操作数的值;否则返回第二个操作数的值。

  • 模板中的应用 :常用于提供默认值多条件判断

    <template>

    你好,{{ user.name || '游客' }}!

    复制代码
      <!-- 多条件判断:用户是管理员或内容编辑者时,显示管理面板 -->
      <div v-if="user.role === 'admin' || user.role === 'editor'">
        <button>管理面板</button>
      </div>
    </div>
    </template> <script> export default { data() { return { user: { name: '', // 空名字,会触发默认值 role: 'editor' } }; } }; </script>

页面展示


3. 非 (NOT) - !

  • 功能 :取反操作。如果操作数为真,则返回 false;如果为假,则返回 true

  • 模板中的应用 :常用于取反条件

    <template>

    内容加载完成!

    加载中...
    复制代码
      <!-- 当用户未认证时,显示登录按钮 -->
      <button v-if="!isAuthenticated">登录</button>
      <button v-else>退出</button>
    </div>
    </template> <script> export default { data() { return { loading: true, isAuthenticated: false }; } }; </script>

页面展示

相关推荐
杜子不疼.36 分钟前
【Linux】教你在 Linux 上搭建 Web 服务器,步骤清晰无门槛
linux·服务器·前端
belldeep39 分钟前
python:用 Flask 3 , mistune 2 和 mermaid.min.js 10.9 来实现 Markdown 中 mermaid 图表的渲染
javascript·python·flask
凉辰1 小时前
使用uni.createInnerAudioContext()播放指定音频(踩坑分享功能)
开发语言·javascript·音视频
echoVic1 小时前
多模型支持的架构设计:如何集成 10+ AI 模型
java·javascript
程序员Agions1 小时前
useMemo、useCallback、React.memo,可能真的要删了
前端·react.js
echoVic1 小时前
AI Agent 安全权限设计:blade-code 的 5 种权限模式与三级控制
java·javascript
David凉宸1 小时前
Vue 3 + TS + Vite + Pinia vs Vue 2 + JS + Webpack + Vuex:对比分析
javascript·vue.js·webpack
滕青山1 小时前
Vue项目BMI计算器技术实现
前端·vue.js
子兮曰1 小时前
深入浏览器指纹:Canvas、WebGL、Audio是如何暴露你的身份的?
前端·浏览器·canvas
月亮补丁1 小时前
AntiGravity只能生成 1:1 图片?一招破解尺寸限制
前端