文章目录
这一节的主要内容是学习Vue的2个指令:
- v-model,双向绑定
- v-on,事件绑定
一,v-model
1,双向绑定
所谓的双向绑定指的是:
- 视图绑定model(数据),即model数据的变化后,view会自动刷新
- model绑定视图,页面上的数据变化后,model对应的数据会自动更新
Vue 的双向绑定是一种数据绑定机制,允许视图(即用户界面)与应用状态(即数据模型)之间的自动同步。
这种机制使得开发者无需手动去追踪和管理视图与数据模型之间的同步,从而大大简化了开发流程。
Vue 实现双向绑定的核心是 v-model
指令。v-model
是一个语法糖,它实际上是一个语法上的便利抽象,结合了数据绑定和事件监听器的功能,使得开发者可以轻松地在表单控件元素(如 input, select, textarea 等)上创建双向数据绑定。
2,vue的双向绑定
2.1 html元素上使用指令v-model
在index.html中添加input元素。
<input v-model="num"/>
v-model 是 Vue.js 提供的一个指令,用于在表单控件(如 input、textarea 和 select 元素)与 Vue 实例中的数据属性之间创建双向数据绑定。
2.2 model中声明对应属性
在view对象中声明num属性。
let vm = new Vue({
el: '#app',
data: {
name: "张二强",
num: 100
}
})
2.3,验证
view绑定model
打开网页,首先是输入框中会显示数字100,这是因为view绑定了model,model中的数据会被渲染到view。
model绑定view
当我们在输入框中输入120时,model中的数据也会更新为120。
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<input v-model="num"/>
<h1>{{name}},非常帅,有{{num}}</h1>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
let vm = new Vue({
el: '#app',
data: {
name: "张二强",
num: 100
}
})
</script>
</body>
</html>
二,v-on
1,指令简介
v-on 是 Vue.js 中的一个指令,用于在 DOM 元素上监听用户事件,并在事件触发时执行相应的 JavaScript 函数。它提供了一种将 Vue 实例中的方法与 DOM 事件关联起来的方式,使得你可以轻松地对用户交互做出响应。
v-on 指令的基本语法是在元素上添加 v-on:event-name=“method”,其中 event-name 是你要监听的 DOM 事件类型(如 click、mouseover、keydown 等),method 则是 Vue 实例中定义的方法名。
2,在button按钮中添加v-on:click
在index.html中增加一个button按钮。
<button v-on:click="num++" >点赞</button>
注意,这个按钮使用了v-on:click指令,指令中是js代码,当按钮被点击后,执行这段代码,model中的num自增。
当然,在v-on中也可以调用model中的方法。
<button v-on:click="cancel" >取消点赞</button>
如上,在一个button中使用v-on:click
指令注册了click
事件,这个事件调用了cancel
方法,其在vue对象中的声明如下。
let vm = new Vue({
el: '#app',
data: {
name: "张二强",
num: 100
},
methods:{
cancel(){
this.num--;
}
}
})
注意,方法都要声明在methods
下。
完整代码
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Document</title>
</head>
<body>
<div id="app">
<input v-model="num"/>
<button v-on:click="num++" >点赞</button>
<button v-on:click="cancel" >取消点赞</button>
<h1>{{name}},非常帅,有{{num}}</h1>
</div>
<script src="./node_modules/vue/dist/vue.js"></script>
<script>
let vm = new Vue({
el: '#app',
data: {
name: "张二强",
num: 100
},
methods:{
cancel(){
this.num--;
}
}
})
</script>
</body>
</html>
三,2个插件
1, Vscode插件Vue 2 Snippets
Vue 2 Snippets 主要是指在开发 Vue.js 2 应用时使用的代码片段或模板。在代码编辑器或 IDE 中,Snippets 可以帮助开发者快速插入常用的代码结构,减少重复的手动编码工作,提高开发效率。这些 Snippets 通常包含了 Vue.js 组件的基本结构、指令、计算属性、事件处理器等常见的代码模式。
使用 Vue 2 Snippets 的主要作用包括:
加速开发:
- 快速生成预定义的代码块,减少键盘输入,节省时间。
代码标准化:
- 保证项目中代码风格的一致性,遵循最佳实践。
减少错误:
- 自动插入正确的语法和结构,减少因手写代码而引入的错误。
易于学习:
- 对于初学者来说,Snippets 可以作为学习 Vue.js 结构和语法的参考。
提升团队协作:
- 当团队成员都使用相同的 Snippets 时,代码更加统一,便于理解和维护。
智能提示和补全:
- 许多现代编辑器和 IDE 都支持基于 Snippets 的智能代码补全功能。
例如,在 Visual Studio Code 中,你可以安装专门针对 Vue.js 的扩展插件,如 “Vetur”,它提供了大量的 Vue 2 Snippets。当你开始输入某个触发词时,如 “v-comp”,然后按 Tab 键,就可以自动生成一个 Vue.js 组件的完整模板。
<template>
<div class="name-of-component">
<!-- Your component's template goes here -->
</div>
</template>
<script>
export default {
name: 'NameOfComponent',
props: [],
data() {
return {
// your component's data properties go here
};
},
computed: {},
methods: {},
created() {},
mounted() {},
};
</script>
<style scoped>
/* Your component's styles go here */
</style>
这样的 Snippets 不仅可以帮助你快速搭建组件框架,还可以让你专注于逻辑实现,而不是花费时间在基础结构的编写上。
2,chrome插件Vue-devtoos
F12打开调试界面,在命令行控制台可以看到安装Vue-devtools插件的提示。
Vue Devtools 是一个专为 Vue.js 应用程序设计的浏览器扩展工具,它提供了深入的调试功能和可视化界面,帮助开发者更有效地理解和调试 Vue.js 应用。以下是 Vue Devtools 的一些主要作用:
组件树视图:
- 显示应用程序中组件的层次结构,便于理解组件之间的父子关系。
- 高亮显示当前激活的组件,帮助定位和跟踪用户交互。
组件实例检查:
- 允许查看和修改组件的状态,包括
data
、computed
、props
、methods
等。 - 可以查看组件的模板、样式和源代码,以及它们的依赖项。
- 允许查看和修改组件的状态,包括
时间旅行调试:
- 记录组件的状态快照,允许开发者回溯到之前的状态,查看状态变化历史。
- 支持“跳转”到特定的时间点,重现问题发生时的环境。
性能监控:
- 监测每个组件的渲染时间和渲染次数,帮助识别性能瓶颈。
- 提供性能分析工具,如 Profiler,用于详细分析渲染性能。
事件监听:
- 显示组件上触发的所有事件,包括自定义事件和内置事件。
- 可以监听特定事件,观察事件流和事件处理器的行为。
调试工具:
- 提供断点调试能力,允许在特定组件或方法上调试。
- 集成了 Chrome 开发者工具的其他功能,如网络请求监控、CSS 编辑等。
版本兼容性:
- 支持多种 Vue.js 版本,包括 Vue 2 和 Vue 3。
- 提供了版本切换功能,确保工具与应用版本匹配。
社区支持与更新:
- 定期更新以修复 bug 和改进功能,保持与最新 Vue.js 核心库的兼容性。
- 社区活跃,有丰富的文档和教程资源。
总之,Vue Devtools 是 Vue.js 开发者不可或缺的工具之一,它极大地提高了开发效率和调试体验,是学习和优化 Vue.js 应用的重要辅助手段。