Vue.js 入门教程
一、引言
Vue.js 是一个用于构建用户界面的渐进式 JavaScript 框架。与其他重量级框架不同,Vue 采用自底向上增量开发的设计。Vue 的核心库只关注视图层,并且非常容易上手,同时也很容易与其他库或已有项目整合。本文将引导你逐步了解 Vue.js 的基本概念和用法。
二、安装 Vue.js
-
直接下载并引入
你可以直接在 HTML 文件中通过 CDN 引入 Vue.js:
html复制代码<script src="https://cdn.jsdelivr.net/npm/vue@2"></script> -
使用 npm 安装
如果你在使用 Node.js,推荐使用 npm 安装 Vue:
bash复制代码npm install vue -
使用 Vue CLI 创建项目
Vue CLI 是一个官方提供的标准工具,用于快速搭建 Vue.js 项目。你可以通过以下命令全局安装 Vue CLI:
bash复制代码npm install -g @vue/cli然后,通过以下命令创建一个新项目:
bash复制代码vue create my-projectcd my-projectnpm run serve
三、基础概念
-
实例
Vue 实例是 Vue 应用的起点。每个 Vue 应用都是通过创建一个 Vue 实例开始的:
javascript复制代码var vm = new Vue({el: '#app',data: {message: 'Hello Vue!'}});在 HTML 中,你需要有一个与
el属性对应的 DOM 元素:html复制代码<div id="app">{{ message }}</div> -
模板语法
Vue 使用基于 HTML 的模板语法,允许你声明式地将 DOM 绑定到底层 Vue 实例的数据上。Vue 的模板语法非常简单,主要有两种:
- 插值:
{{ }}用于文本插值。 - 指令:
v-bind、v-model、v-if等,用于在模板中声明式地绑定或控制 DOM 元素。
- 插值:
-
计算属性
计算属性用于声明式地描述基于响应式依赖的复杂逻辑。当依赖变化时,计算属性会重新计算,并且缓存结果,只有在相关依赖再次变化时才会重新计算。
javascript复制代码var vm = new Vue({el: '#app',data: {message: 'Hello'},computed: {reversedMessage: function () {return this.message.split('').reverse().join('');}}});在模板中使用计算属性:
html复制代码<div id="app">{{ reversedMessage }}</div> -
事件处理
使用
v-on指令(简写为@)来监听 DOM 事件:html复制代码<div id="app"><button @click="greet">Greet</button></div>在 Vue 实例中定义方法:
javascript复制代码var vm = new Vue({el: '#app',data: {name: 'Vue.js'},methods: {greet: function (event) {alert('Hello ' + this.name + '!')}}});
四、组件
组件系统是 Vue 的另一个重要概念,它允许我们将 UI 拆分成可复用的独立部分。
-
注册组件
全局注册组件:
javascript复制代码Vue.component('my-component', {template: '<div>A custom component!</div>'});局部注册组件:
javascript复制代码var Child = {template: '<div>A custom component!</div>'};new Vue({el: '#app',components: {'child-component': Child}}); -
使用组件
html复制代码<div id="app"><my-component></my-component><child-component></child-component></div> -
组件间的通信
- 父组件向子组件传递数据:通过
props。 - 子组件向父组件发送消息:通过
$emit触发事件。 - 非父子组件间的通信:通过 Vuex(状态管理模式)或 Event Bus。
- 父组件向子组件传递数据:通过
五、Vue CLI 深入
使用 Vue CLI 创建的项目结构相对复杂,但提供了很多开箱即用的功能,比如路由、状态管理、构建工具等。
-
路由
Vue Router 是 Vue.js 官方的路由管理器。在项目根目录下安装 Vue Router:
bash复制代码npm install vue-router配置路由:
javascript复制代码import Vue from 'vue';import Router from 'vue-router';import Home from './components/Home.vue';import About from './components/About.vue';Vue.use(Router);export default new Router({routes: [{path: '/',name: 'Home',component: Home},{path: '/about',name: 'About',component: About}]});在 Vue 实例中使用路由:
javascript复制代码import Vue from 'vue';import App from './App.vue';import router from './router';new Vue({router,render: h => h(App)}).$mount('#app'); -
状态管理
Vuex 是专为 Vue.js 应用程序开发的状态管理模式。安装 Vuex:
bash复制代码npm install vuex配置 Vuex:
javascript复制代码import Vue from 'vue';import Vuex from 'vuex';Vue.use(Vuex);export default new Vuex.Store({state: {count: 0},mutations: {increment (state) {state.count++;}},actions: {increment ({ commit }) {commit('increment');}},getters: {count: state => state.count}});在 Vue 实例中使用 Vuex:
javascript复制代码import Vue from 'vue';import App from './App.vue';import store from './store';new Vue({store,render: h => h(App)}).$mount('#app');
六、总结
Vue.js 是一个强大且易于上手的 JavaScript 框架,适用于构建单页面应用(SPA)。通过本文,你应该已经了解了 Vue.js 的基础概念,包括实例、模板语法、计算属性、事件处理以及组件系统。此外,你还学习了如何使用 Vue CLI 创建和管理复杂的 Vue.js 项目,包括路由和状态管理。希望这篇入门教程能帮助你快速上手 Vue.js 开发。