vue2.0官网学习记录
发布日期:2021-05-14 11:07:09 浏览次数:17 分类:精选文章

本文共 2518 字,大约阅读时间需要 8 分钟。

Vue.js入门学习指南

1. Vue.js是什么?

Vue.js 是一套用于构建用户界面的渐进式框架,专注于实现高效的数据驱动视图层(MVVM模型)。与传统的全栈框架不同,Vue.js adopt a bottom-up approach(从底层开始应用),这使得它能够轻松地与现有的项目或第三方库无缝集成。即使是在复杂的单页应用场景中,Vue.js也能通过与现代工具链和支持库的结合,满足高度的开发需求。

2. 插值——数据的展示与更新

2.1 文本插值与v-once

Vue.js 的核心在于通过简洁的模板语法将数据渲染到 DOM 中。最常见的形式是使用 Mustache 语法(双大括号),例如:

{{ msg }}

这里,Mustache 标签会被替换为对应数据对象上 msg 属性的值。如果 msg 在数据对象中发生变化,插值内容也会立即更新。

为了实现一次性插值,用户可以使用 v-once 指令:

{{ msg }}元素不会随 msg 变化而更新

但需要注意的是,v-once 会影响该节点上的其他数据绑定,所以在使用时需谨慎。

2.2 原始HTML插值与XSS攻击

除了文本插值, 那里有时候需要输出真实的 HTML 内容,这时候需要用到 v-html 指令:

{{ htmlContent }}

然而,随着技术的发展,直接用 v-html 是不推荐的,因为它可能引发 XSS 攻击。以下是一些关于 XSS 攻击的知识:

  • XSS(跨站脚本攻击)是Web漏洞中最常见的一种,攻击者通过oops ui 组件提交恶意 HTML 脚本,随后这些脚本会被其他用户访问,导致潜在的安全风险。
  • XSS 攻击种类主要有 DOM Based XSS 和 Stored XSS。DOM Based XSS 的危害较低,Stored XSS 则数据存储中存储有害脚本。
  • 注意,所有可输入的字段都可能有 XSS 漏洞,特别是在没有进行高度 sanitize 的情况下。

2.3 属性绑定与v-bind

v-bind 指令可以用于将 Vue 数据绑定到 HTML 属性上。例如:

v-bind:class=".className"
v-bind:style="styleObj"

通过 v-bind,我们可以把动态数据传递给 DOM 属性,是很常见的需求。

2.4 允许 JavaScript 表达式

除了简单的插值,还可以通过 {{ }} 中放入 JavaScript 表达式。例如:

{{ index }}
{{ '嗯,' + name + '你好' }}

这种方法虽然灵活,但也需要当心潜在的安全问题,特别是当表达式来源不可信时。

3. 指令——更高效的数据驱动

3.1 常用指令概述

  • v-bind:响应式地绑定数据属性
  • v-ifv-else:条件性地渲染 DOM 元素
  • v-for:遍历数据并生成重复元素
  • v-on:通过事件处理函数响应 DOM 事件
  • v-model:实现表单双向绑定,简单易用且高效

3.2 指令的更深入使用

  • 动态参数:从 Vue 2.6 以后,允许用方括号括起来的 JavaScript 表达式作为指令的参数。例如:
v-for="(item in items)" 并不是完整的表达式,更准确的说法是:
v-for("[expression in collection]"
  • 修饰符:以句号开头的后缀用于修改指令的行为,例如 .preventExclude 特定事件的默认行为。

4. 计算属性与侦听器 创建复杂的逻辑

4.1 计算属性——响应式和缓存

计算属性是基于数据中其他属性依赖性的响应式变量,它们会根据依赖关系自动更新,并且会对依赖的属性进行缓存,避免重复计算带来的性能消耗。

例如:

computed: {
回到首页 (return 后退器逻辑...
}

与方法相比,计算属性会自动缓存结果,只有在依赖的数据发生变化时才会重新调用。

4.2侦听器——灵活应对数据变化

对于需要在数据变化时执行特定操作(如保存draft到本地存储),侦听器是一个更通用的解决方案。可以使用 watch 选项或命令式的 vm.$watch API。

4.3 计算属性的公共this上下文

此外,计算属性和方法在 this 上下文上的作用需谨慎区分。需要记住的是,计算属性基于 getter 方法,它们在区域内单独响应式绑定,而方法不可依赖其他计算属性,除非被明确调用。

5. 类与样式绑定

对于需要动态操作元素样式的场景,Vue 提供了更方便的方式:

v-bind:class "[表达式值]"

v-bind:style 允许传入对象或数组:

v-bind:style "{color: activeColor, font-size: ys]"

6. 条件渲染——更灵活的UI 组合

6.1 条件判断与复用元素

在 Vue 中,通过条件判断可以多次使用相同的模板结构。例如:

子组件...
其他子组件...

此外,为了提升复用效率,可以在条件块内添加 key 属性,使其成为全新的 DOM 元素。

6.2 v-if vs v-show

在实际应用中,选择 v-if 还是 v-show 取决于具体需求:

  • v-if 是真正条件渲染,切换可能伴随较高的切换开销
  • v-show 始终保持元素处于 DOM 中,只是简单地切换 CSS 属性 display
  • 总的选择建议是根据具体场景权衡初始渲染和切换开销。

6.3 v-if 与 v-for 的避免组合

建议避免将 v-ifv-for 组合使用,因为 v-for 的优先级高于 v-if,这可能导致意外行为。

7. 列表渲染——高效地重复使用 DOM 元素

通过 v-for 实现数组数据的高效渲染:

{{ item.name }}

此外,通过提供 key 属性,可以确保每个 v-for 项都有独特身份,避免复用带来的潜在问题。

这只是 Vue.js 的一部分内容,希望能帮助开发者更好地理解和运用 Vue.js。

上一篇:你不知道的javascript-上卷-第一部分作用域和闭包 第1章 作用域
下一篇:JavaScript高级程序设计第四版学习记录-第九章代理与反射

发表评论

最新留言

逛到本站,mark一下
[***.202.152.39]2025年04月20日 05时39分01秒