当前位置:  首页>> 技术小册>> Vue.js从入门到精通(三)

15.1.2 基本用法

在Vue.js的广袤领域中,掌握其基本用法是每位开发者从入门迈向精通的必经之路。本章“15.1.2 基本用法”将深入剖析Vue.js的核心概念与日常开发中频繁使用的功能,帮助读者构建坚实的Vue应用基础。我们将从Vue实例的创建、模板语法、数据绑定、指令使用、事件处理以及组件的基本概念等方面展开讲解。

1. Vue实例的创建

Vue.js应用的起点是创建一个新的Vue实例。这个实例是Vue应用的根,包含了应用的所有数据和逻辑。Vue实例通过new Vue({...})的方式创建,其中传入的对象包含了应用的数据(data)、模板(template)、挂载点(elmount)、方法等选项。

  1. // 示例:创建一个简单的Vue实例
  2. new Vue({
  3. el: '#app', // 指定挂载点
  4. data: {
  5. message: 'Hello, Vue.js!' // 应用数据
  6. }
  7. });
  8. // HTML 部分
  9. <div id="app">
  10. {{ message }}
  11. </div>

在这个例子中,Vue实例被挂载到ID为app的DOM元素上,data属性中的message数据被渲染到该元素的模板中。

2. 模板语法

Vue.js使用基于HTML的模板语法,允许开发者声明式地将DOM绑定至底层Vue实例的数据。模板语法包括插值(文本插值、原始HTML)、指令(如v-bindv-modelv-on等)和过滤器。

  • 文本插值:使用双大括号{{ }}进行文本插值,可以显示Vue实例中的数据。
  • 原始HTML:使用v-html指令可以输出真正的HTML,但需注意防止XSS攻击。
  • 指令:Vue.js的指令以v-开头,为模板提供强大的功能。如v-bind用于响应式地更新HTML属性,v-model在表单输入和应用状态之间创建双向数据绑定。
  1. <div id="app">
  2. <p>{{ message }}</p>
  3. <div v-html="rawHtml"></div>
  4. <input v-model="inputValue" placeholder="Edit me">
  5. </div>
  6. <script>
  7. new Vue({
  8. el: '#app',
  9. data: {
  10. message: 'Vue模板语法',
  11. rawHtml: '<span style="color: red">这是红色的文字</span>',
  12. inputValue: ''
  13. }
  14. });
  15. </script>

3. 数据绑定

Vue.js的响应式系统允许应用的数据状态与DOM保持同步。当Vue实例的数据变化时,视图会自动更新以反映这些变化,这就是所谓的“数据绑定”。Vue使用Object.defineProperty(在Vue 3中则使用Proxy)来实现这一功能。

  1. // 当message变化时,绑定的DOM也会自动更新
  2. new Vue({
  3. el: '#app',
  4. data: {
  5. message: '初始消息'
  6. },
  7. created() {
  8. setTimeout(() => {
  9. this.message = '更新后的消息'; // 数据变化,视图自动更新
  10. }, 1000);
  11. }
  12. });

4. 指令的使用

Vue.js提供了丰富的内置指令,用于在模板中执行各种操作。以下是一些常用指令的简介:

  • v-bind:用于动态地更新HTML属性,如v-bind:href="url"可以简写为:href="url"
  • v-model:在表单输入和应用状态之间创建双向数据绑定。
  • v-on:监听DOM事件,并在触发时执行一些JavaScript代码,可以简写为@符号,如v-on:click="handleClick"可简写为@click="handleClick"
  • v-ifv-else-ifv-else:根据表达式的真假值来条件性地渲染元素。
  • v-show:根据表达式的真假值来切换元素的CSS属性display
  • v-for:基于源数据多次渲染元素或模板块。

5. 事件处理

在Vue中,处理用户输入和事件是非常直接的。你可以使用v-on指令监听DOM事件,并在触发时执行一些JavaScript代码。v-on可以简写为@

  1. <template>
  2. <div>
  3. <button @click="increment">点击我</button>
  4. <p>计数: {{ count }}</p>
  5. </div>
  6. </template>
  7. <script>
  8. export default {
  9. data() {
  10. return {
  11. count: 0
  12. };
  13. },
  14. methods: {
  15. increment() {
  16. this.count++;
  17. }
  18. }
  19. }
  20. </script>

6. 组件化开发

Vue.js鼓励使用组件化的方式来构建应用。组件是Vue.js最强大的功能之一,它们允许你将UI分割成可复用的独立、可复用的部分,并具有各自的逻辑和样式。

  • 注册组件:全局注册和局部注册。
  • 组件选项:包括datacomputedmethodswatchprops等,用于定义组件的状态、计算属性、方法、监听器以及外部传入的属性。
  • 父子组件通信:通过props向下传递数据,通过自定义事件$emit向上通信,以及使用Vuex或Provide/Inject进行跨层级通信。
  1. <!-- ChildComponent.vue -->
  2. <template>
  3. <div>{{ msg }}</div>
  4. </template>
  5. <script>
  6. export default {
  7. props: ['msg']
  8. }
  9. </script>
  10. <!-- ParentComponent.vue -->
  11. <template>
  12. <div>
  13. <child-component :msg="parentMessage" @custom-event="handleCustomEvent"></child-component>
  14. </div>
  15. </template>
  16. <script>
  17. import ChildComponent from './ChildComponent.vue';
  18. export default {
  19. components: {
  20. ChildComponent
  21. },
  22. data() {
  23. return {
  24. parentMessage: '来自父组件的消息'
  25. };
  26. },
  27. methods: {
  28. handleCustomEvent() {
  29. console.log('子组件触发了自定义事件');
  30. }
  31. }
  32. }
  33. </script>

结语

通过本章“15.1.2 基本用法”的学习,我们掌握了Vue.js的核心概念和基本用法,包括Vue实例的创建、模板语法的使用、数据绑定、指令的灵活应用、事件处理以及组件化开发的基础。这些是构建任何Vue.js应用所必需的基础知识,为后续深入学习Vue.js的高级特性和最佳实践打下了坚实的基础。随着实践的深入,你将逐渐体会到Vue.js带来的开发效率和乐趣,成为Vue.js领域的精通者。


该分类下的相关小册推荐: