Vue学习笔记 | 青训营

72 阅读2分钟

Vue 是一款非常受欢迎的前端框架,它具有轻量级、易于上手、高效等优点。在这篇学习笔记中,我们将探讨 Vue 的一些核心概念和功能,以及如何使用 Vue 搭建一个简单的项目。

1. Vue 简介

Vue 是一款用于构建用户界面的渐进式前端框架。与其它庞大的框架不同,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,使其易于学习和集成到现有项目中。

2. Vue 实例

在 Vue 中,一个实例通常代表一个组件或页面。实例的创建非常简单,只需使用 new Vue() 即可创建一个 Vue 实例。如下所示:

const app = new Vue();  

3. 数据绑定

Vue 中的数据绑定非常简单。只需在模板中使用 {{ }} 即可将数据绑定到视图。如下所示:

<div id="app">  
  <h1>{{ message }}</h1>  
</div>

<script>  
  const app = new Vue({  
    el: '#app',  
    data: {  
      message: 'Hello Vue!'  
    }  
  });  
</script>  

4. 条件渲染

Vue 提供了 v-ifv-else-ifv-else 指令,用于根据条件渲染元素。如下所示:

<div id="app">  
  <h1 v-if="type === 'A'">Type A</h1>  
  <h1 v-else-if="type === 'B'">Type B</h1>  
  <h1 v-else>Type C</h1>  
</div>

<script>  
  const app = new Vue({  
    el: '#app',  
    data: {  
      type: 'A'  
    }  
  });  
</script>  

5. 事件处理

Vue 提供了 v-on 指令,用于监听 DOM 元素的事件。如下所示:

<button v-on:click="counter += 1">Add 1</button>

<script>  
  const app = new Vue({  
    el: '#app',  
    data: {  
      counter: 0  
    }  
  });  
</script>  

6. 计算属性

Vue 提供了 computed 选项,用于创建计算属性。计算属性是基于它们的依赖进行缓存的,只有在依赖发生改变时才会重新计算它们的值。如下所示:

const app = new Vue({  
  el: '#app',  
  data: {  
    message: 'Hello Vue!',  
    reverseMessage: computed(() => this.message.split('').reverse().join(''))  
  }  
});  

7. 侦听器

Vue 提供了 watch 选项,用于监听数据变化。当数据发生变化时,侦听器会触发一个回调函数。如下所示:

const app = new Vue({  
  el: '#app',  
  data: {  
    message: 'Hello Vue!',  
    watcher: {  
      handler: function (newVal, oldVal) {  
        console.log('Message changed from', oldVal, 'to', newVal);  
      },  
      deep: true  
    }  
  }  
});  

8. 条件渲染与列表

Vue 提供了 v-for 指令,用于根据列表渲染元素。如下所示:

<ul>  
  <li v-for="item in items" :key="item.id">{{ item.text }}</li>  
</ul>

<script>  
  const app = new Vue({  
    el: '#app',  
    data: {  
      items: [  
        { id: 1, text: 'Item 1' },  
        { id: 2, text: 'Item 2' },  
        { id: 3, text: 'Item 3' }  
      ]  
    }  
  });  
</script>  

通过这次青训营学习vue,我对于前端框架的理解更深了,希望在未来的生活中我能更多的运用vue来创造更多好的项目。