当前位置: 首页 > wzjs >正文

做网站要切图吗推广链接点击器app

做网站要切图吗,推广链接点击器app,江宁网站建设,上海品牌网站制作目录 一、插值语法 {{ }} 二、核心指令 三、动态属性绑定 四、事件修饰符 五、条件渲染 vs 列表渲染总结 六、最佳实践 示例 1:插值语法 & 基础绑定 示例 2:条件渲染 示例 3:列表渲染 示例 4:事件处理 示例 5&…

目录

一、插值语法 {{ }}

二、核心指令

三、动态属性绑定

四、事件修饰符

五、条件渲染 vs 列表渲染总结

六、最佳实践

示例 1:插值语法 & 基础绑定

示例 2:条件渲染

示例 3:列表渲染

示例 4:事件处理

示例 5:动态绑定

示例 6:双向绑定

示例 7:综合实践


一、插值语法 {{ }}

  • 作用:将数据绑定到 DOM 文本内容。

  • 特性

    • 支持 JavaScript 表达式(如 {{ count + 1 }}),但不支持语句(如 if)。

    • 自动响应数据变化(数据驱动视图)。

  • 示例

    <p>{{ message }}</p>
    <p>{{ user.name }}</p>

二、核心指令

  1. 条件渲染:v-if vs v-show

    • v-if

      • 根据条件销毁或创建元素

      • 适用于切换频率低的场景(如初始化渲染)。

      • 支持 v-else 和 v-else-if

    • v-show

      • 通过 CSS display 控制显示/隐藏。

      • 适用于频繁切换的场景(如选项卡)。

    • 示例

      <div v-if="isVisible">v-if 内容</div>
      <div v-show="isActive">v-show 内容</div>
  2. 列表渲染:v-for

    • 作用:遍历数组或对象生成列表。

    • key 的作用

      • 唯一标识:帮助 Vue 跟踪节点身份,优化复用逻辑。

      • 避免问题:防止列表更新时出现错乱(如状态保留问题)。

    • 最佳实践

      • 使用唯一 ID(如 :key="item.id")。

      • 避免用 index 作为 key(除非列表静态且无排序)。

    • 示例

      <ul><li v-for="item in items" :key="item.id">{{ item.name }}</li>
      </ul>
  3. 属性绑定:v-bind(简写 :

    • 动态属性:将数据绑定到 HTML 属性(如 idclass)。

    • 示例

      <img :src="imageUrl" />
      <div :class="{ active: isActive }"></div>
  4. 事件绑定:v-on(简写 @

    • 监听事件:如点击、输入等。

    • 示例

      <button @click="handleClick">点击</button>
  5. 双向绑定:v-model

    • 作用:表单输入与数据的双向同步(语法糖 = :value + @input)。

    • 示例

      <input v-model="message" />

三、动态属性绑定

  1. 动态 Class(:class

    • 对象语法:按条件添加类名。

      <div :class="{ active: isActive, 'text-danger': hasError }"></div>
    • 数组语法:绑定多个类名。

      <div :class="[activeClass, errorClass]"></div>
  2. 动态 Style(:style

    • 对象语法:绑定样式对象。

      <div :style="{ color: textColor, fontSize: size + 'px' }"></div>
    • 数组语法:组合多个样式对象。

      <div :style="[baseStyles, overrideStyles]"></div>

四、事件修饰符

  • 常用修饰符

    • .stop:阻止事件冒泡(等价于 event.stopPropagation())。

    • .prevent:阻止默认行为(等价于 event.preventDefault())。

    • .once:事件只触发一次。

    • .self:仅当事件从元素自身触发时生效。

  • 示例

    <button @click.stop="handleClick">阻止冒泡</button>
    <form @submit.prevent="handleSubmit">阻止默认提交</form>
  • 按键修饰符:

按键别名:

Vue 为一些常用的按键提供了别名:

  • .enter
  • .tab
  • .delete (捕获“Delete”和“Backspace”两个按键)
  • .esc
  • .space
  • .up
  • .down
  • .left
  • .right

系统按键修饰符:

你可以使用以下系统按键修饰符来触发鼠标或键盘事件监听器,只有当按键被按下时才会触发。

  • .ctrl
  • .alt
  • .shift
  • .meta
<!-- 仅在 key 为 Enter 时调用 submit -->
<input @keyup.enter="submit" /><!-- Alt + Enter --> 
<input @keyup.alt.enter="clear" />
<!-- Ctrl + 点击 --> 
<div @click.ctrl="doSomething">Do something</div> 

五、条件渲染 vs 列表渲染总结

特性v-ifv-showv-for(需 key
渲染方式条件为假时销毁元素始终渲染,切换 CSS动态生成列表项
性能初始渲染开销低切换开销低列表变化时依赖 key 优化
适用场景不频繁切换的条件频繁显示/隐藏动态列表数据

六、最佳实践

  1. v-for 的 key

    • 始终使用唯一标识(如数据库 ID)。

    • 避免 index,除非列表简单且无状态。

  2. v-if 与 v-for 优先级

    • 避免在同一个元素上同时使用(Vue3 中 v-if 优先级更高)。

    • 使用 <template> 包裹解决:

      <template v-for="item in items" :key="item.id"><div v-if="item.isVisible">{{ item.name }}</div>
      </template>
  3. 事件处理

    • 复杂逻辑应封装到方法中,避免内联表达式。


示例 1:插值语法 & 基础绑定

<template><!-- 文本插值 --><p>{{ message }}</p><!-- JavaScript 表达式 --><p>{{ count + 1 }}</p><!-- 属性绑定 --><a :href="'https://vuejs.org'">官网链接</a>
</template><script setup>
import { ref } from 'vue'const message = ref('Hello Vue3!')
const count = ref(0)
</script>

示例 2:条件渲染

<template><!-- v-if 链式判断 --><div><p v-if="score >= 90">优秀</p><p v-else-if="score >= 60">合格</p><p v-else>不合格</p></div><!-- v-show 切换 --><button @click="showA = !showA">切换显示</button><div v-show="showA">显示/隐藏内容</div>
</template><script setup>
import { ref } from 'vue'const showA = ref(true)
const score = ref(85)
</script>

示例 3:列表渲染

<template><!-- 带 key 的列表渲染 --><ul><li v-for="(item, index) in books" :key="item.id">{{ index + 1 }}. {{ item.title }}</li></ul><!-- 动态添加项 --><input v-model="newBook"><button @click="books.push({ id: Date.now(), title: newBook })">添加书籍</button>
</template><script setup>
import { ref } from 'vue'const books = ref([{ id: 'b1', title: 'Vue3 入门' },{ id: 'b2', title: 'TypeScript 进阶' }
])const newBook = ref('')
</script>

示例 4:事件处理

<template><!-- 内联事件处理 --><button @click="handleClick('按钮点击')">点击事件</button><!-- 事件修饰符 --><div @click.self="console.log('父元素点击')"><button @click.stop="console.log('子元素点击')">阻止冒泡</button></div><!-- 按键修饰符 --><input @keyup.enter="console.log('回车按下')" @keyup.esc="console.log('ESC 按下')">
</template><script setup>
function handleClick(msg) {alert(msg)
}function handleKeyup(e) {console.log('按键码:', e.keyCode)
}
</script>

示例 5:动态绑定

<template><!-- 动态 class (对象语法) --><div :class="{ active: isActive, 'text-danger': false }">动态类名</div><!-- 动态 style (数组语法) --><div :style="[{ color: errorColor }, styleObject]">动态样式</div>
</template><script setup>
import { ref } from 'vue'const isActive = ref(true)
const errorColor = ref('red')
const styleObject = ref({fontSize: '20px',fontWeight: 'bold'
})
</script>

示例 6:双向绑定

<template><!-- 文本输入 --><input v-model="text" placeholder="输入内容"><!-- 复选框 --><input type="checkbox" v-model="checked"><!-- 单选按钮 --><select v-model="selectedOption"><option value="A">选项A</option><option value="B">选项B</option></select>
</template><script setup>
import { ref } from 'vue'const text = ref('')
const checked = ref(false)
const selectedOption = ref('A')
</script>

示例 7:综合实践

<template><!-- 条件渲染 + 列表渲染 --><div v-if="activeTodos.length > 0"><h3>待办事项 ({{ activeTodos.length }})</h3><ul><li v-for="todo in activeTodos" :key="todo.id":class="{ completed: todo.done }">{{ todo.text }}<button @click="todo.done = true">完成</button></li></ul></div><p v-else>全部任务已完成!🎉</p><!-- 双向绑定 + 事件修饰符 --><form @submit.prevent="addTodo"><input v-model.trim="newTodo" @keyup.enter="addTodo"><button type="submit">添加</button></form>
</template><script setup>
import { ref, computed } from 'vue'const todos = ref([{ id: 1, text: '学习 Vue3', done: true },{ id: 2, text: '掌握组合式API', done: false }
])const newTodo = ref('')const activeTodos = computed(() => todos.value.filter(t => !t.done)
)function addTodo() {if (newTodo.value.trim()) {todos.value.push({id: Date.now(),text: newTodo.value,done: false})newTodo.value = ''}
}
</script>

http://www.dtcms.com/wzjs/372337.html

相关文章:

  • 学做网站制作计算机培训机构
  • 网易那个自己做游戏的网站是什么原因网页设计模板html代码
  • 如何做盗版小说网站重庆森林粤语完整版在线观看免费
  • 公司网站自己可做吗网站推广怎么优化
  • 做不了大流量网站app软件开发制作公司
  • 农家乐网站建设方案北京seo网络优化师
  • 网站优化首页付款百度网盘链接
  • 无忧网站建设多少钱seo发包软件
  • 在义乌做电商怎么起步商丘seo推广
  • 带产品展示的个人网站模板seo排名平台
  • 网站上关键词的推广怎么做百度搜索链接
  • 上海网站建设网页制百度网页版
  • 广州餐饮管理有限公司长沙排名优化公司
  • SharePoint做网站好吗windows优化大师是病毒吗
  • 网站开发培训成都百度推广和百度竞价有什么区别
  • 广告联盟的网站怎么做360免费建站网页链接
  • 免费申请域名注册搜索优化引擎
  • 企业网站 建设公司百度信息流广告平台
  • 珠宝首饰网站建设规划书互联网营销方案策划
  • chci网站建设外贸软件排行榜
  • 北京建设委员会网站首页百度推广账户登陆
  • 小制作作文400字黄石seo诊断
  • wild合成版是哪个网站做的seo查询软件
  • 网站案例介绍seo企业站收录
  • 常用网站建设技术是什么sem培训班培训多少钱
  • 中山里水网站建设关键词查询爱站网
  • 郑州专业网站制作的公司哪家好打广告在哪里打最有效
  • 优化设计四年级上册语文答案windows优化大师有什么功能
  • 网站推广渠道及特点网站查询进入
  • 手机网站要求百度的客服电话是多少