在Vue.js的广袤领域中,掌握其基本用法是每位开发者从入门迈向精通的必经之路。本章“15.1.2 基本用法”将深入剖析Vue.js的核心概念与日常开发中频繁使用的功能,帮助读者构建坚实的Vue应用基础。我们将从Vue实例的创建、模板语法、数据绑定、指令使用、事件处理以及组件的基本概念等方面展开讲解。
Vue.js应用的起点是创建一个新的Vue实例。这个实例是Vue应用的根,包含了应用的所有数据和逻辑。Vue实例通过new Vue({...})
的方式创建,其中传入的对象包含了应用的数据(data
)、模板(template
)、挂载点(el
或mount
)、方法等选项。
// 示例:创建一个简单的Vue实例
new Vue({
el: '#app', // 指定挂载点
data: {
message: 'Hello, Vue.js!' // 应用数据
}
});
// HTML 部分
<div id="app">
{{ message }}
</div>
在这个例子中,Vue实例被挂载到ID为app
的DOM元素上,data
属性中的message
数据被渲染到该元素的模板中。
Vue.js使用基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。模板语法包括插值(文本插值、原始HTML)、指令(如v-bind
、v-model
、v-on
等)和过滤器。
{{ }}
进行文本插值,可以显示Vue实例中的数据。v-html
指令可以输出真正的HTML,但需注意防止XSS攻击。v-
开头,为模板提供强大的功能。如v-bind
用于响应式地更新HTML属性,v-model
在表单输入和应用状态之间创建双向数据绑定。
<div id="app">
<p>{{ message }}</p>
<div v-html="rawHtml"></div>
<input v-model="inputValue" placeholder="Edit me">
</div>
<script>
new Vue({
el: '#app',
data: {
message: 'Vue模板语法',
rawHtml: '<span style="color: red">这是红色的文字</span>',
inputValue: ''
}
});
</script>
Vue.js的响应式系统允许应用的数据状态与DOM保持同步。当Vue实例的数据变化时,视图会自动更新以反映这些变化,这就是所谓的“数据绑定”。Vue使用Object.defineProperty(在Vue 3中则使用Proxy)来实现这一功能。
// 当message变化时,绑定的DOM也会自动更新
new Vue({
el: '#app',
data: {
message: '初始消息'
},
created() {
setTimeout(() => {
this.message = '更新后的消息'; // 数据变化,视图自动更新
}, 1000);
}
});
Vue.js提供了丰富的内置指令,用于在模板中执行各种操作。以下是一些常用指令的简介:
v-bind:href="url"
可以简写为:href="url"
。@
符号,如v-on:click="handleClick"
可简写为@click="handleClick"
。display
。在Vue中,处理用户输入和事件是非常直接的。你可以使用v-on
指令监听DOM事件,并在触发时执行一些JavaScript代码。v-on
可以简写为@
。
<template>
<div>
<button @click="increment">点击我</button>
<p>计数: {{ count }}</p>
</div>
</template>
<script>
export default {
data() {
return {
count: 0
};
},
methods: {
increment() {
this.count++;
}
}
}
</script>
Vue.js鼓励使用组件化的方式来构建应用。组件是Vue.js最强大的功能之一,它们允许你将UI分割成可复用的独立、可复用的部分,并具有各自的逻辑和样式。
data
、computed
、methods
、watch
、props
等,用于定义组件的状态、计算属性、方法、监听器以及外部传入的属性。props
向下传递数据,通过自定义事件$emit
向上通信,以及使用Vuex或Provide/Inject进行跨层级通信。
<!-- ChildComponent.vue -->
<template>
<div>{{ msg }}</div>
</template>
<script>
export default {
props: ['msg']
}
</script>
<!-- ParentComponent.vue -->
<template>
<div>
<child-component :msg="parentMessage" @custom-event="handleCustomEvent"></child-component>
</div>
</template>
<script>
import ChildComponent from './ChildComponent.vue';
export default {
components: {
ChildComponent
},
data() {
return {
parentMessage: '来自父组件的消息'
};
},
methods: {
handleCustomEvent() {
console.log('子组件触发了自定义事件');
}
}
}
</script>
通过本章“15.1.2 基本用法”的学习,我们掌握了Vue.js的核心概念和基本用法,包括Vue实例的创建、模板语法的使用、数据绑定、指令的灵活应用、事件处理以及组件化开发的基础。这些是构建任何Vue.js应用所必需的基础知识,为后续深入学习Vue.js的高级特性和最佳实践打下了坚实的基础。随着实践的深入,你将逐渐体会到Vue.js带来的开发效率和乐趣,成为Vue.js领域的精通者。