Vue.js基础教学Vue.js 是一款轻量级、易学的前端框架,它是用于构建用户界面的渐进式框架。在这篇教程中,我们将介绍 Vue.js 的基础概念,并通过实际示例来帮助你了解 JavaScript 语法。 在该教程的最后会完整地介绍如何搭建一个Vue地计数器工程。 1. 安装 Vue CLI为了更好地管理项目结构和依赖,我们可以使用 Vue CLI(命令行工具)来创建一个 Vue 工程。首先,你需要安装 Node.js,然后使用 2. 创建 Vue 工程安装完成后,你可以使用 在这个例子中, 3. 运行 Vue 工程创建 Vue 工程后,进入项目文件夹: cd my-vue-app然后使用以下命令安装项目依赖: npm install xxx接下来,你可以运行以下命令启动开发服务器: npm run serve命令执行后,你将看到一个提示,告诉你在哪个地址和端口可以访问你的应用(通常是 4. Vue 实例在引入 Vue.js 之后,我们需要创建一个 Vue 实例。Vue 实例是一个 JavaScript 对象,它包含了应用的数据、方法等属性。以下是一个简单的 Vue 实例: // JavaScript 对象字面量语法,用于创建一个对象var app = new Vue({ el: '#app', // 指定 Vue 实例挂载的元素 data: { // 声明应用的数据 message: 'Hello, Vue.js!' } }); 在这个例子中,我们用一个对象字面量来创建 Vue 实例。对象字面量是用花括号 5. 数据绑定Vue.js 提供了非常简洁的模板语法,可以方便地将数据绑定到 DOM。例如: <div id="app"><h1>{{ message }}</h1> </div> 在这个例子中,我们使用双大括号 6. 指令Vue.js 提供了一些特殊的属性,称为指令(Directives)。指令用于在 DOM 元素上添加特殊的行为。以下是一个使用 <h1 v-bind:title="message">{{ message }}</h1> </div> 在这个例子中,我们使用 7. 事件处理在 Vue.js 中,我们可以使用 <button v-on:click="reverseMessage">Reverse Message</button> <h1>{{ message }}</h1> </div> var app = new Vue({ el: '#app', data: { message: 'Hello, Vue.js!' }, methods: { // 定义 Vue 实例的方法 reverseMessage: function () { // 使用 JavaScript 的字符串方法反转 message this.message = this.message.split('').reverse().join(''); } } }); 在这个例子中,我们使用 8. 计算属性计算属性是一种依赖其他属性的值进行计算的属性。它们是 Vue.js 提供的一种优雅的处理方式,具有缓存功能,只有当依赖的值发生变化时,计算属性才会重新计算。以下是一个简单的计算属性示例: <div id="app"><h1>{{ reversedMessage }}</h1> </div> var app = new Vue({ el: '#app', data: { message: 'Hello, Vue.js!' }, computed: { // 定义计算属性 reversedMessage: function () { // 使用 JavaScript 的字符串方法反转 message return this.message.split('').reverse().join(''); } } }); 在这个例子中,我们使用计算属性 9. 构建 Vue 工程在开发完成后,你需要构建项目,生成可供生产环境部署的静态文件。运行以下命令: npm run build构建完成后,项目文件夹下会生成一个 10.创建一个Vue工程完整流程在这里演示一个创建Vue工程的完整流程,作者使用的是Vue3。 现在一个文件夹中创建Vue工程,例如在vue文件夹中创建(记得开启管理员模式): E:\vue>vue create my-vue-app之后你会在该文件夹底下发现一个 将文件夹中的一些文件进行修改,其中 文件结构my-vue-app/|-- public/ | |-- index.html |-- src/ | |-- components/ | |-- MyCounter.vue | |-- App.vue | |-- main.js 修改文件 index.html<!DOCTYPE html><html lang="en"> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>Vue Counter App</title> </head> <body> <div id="app"></div> </body> </html> main.jsimport { createApp } from "vue";import App from "./App.vue"; const app = createApp(App); app.mount("#app"); App.vue<template><div id="app"> <h1>Vue Counter App</h1> <MyCounter /> </div> </template> <script> import MyCounter from "./components/MyCounter.vue"; export default { name: "App", components: { MyCounter, }, }; </script> <style> #app { text-align: center; } </style> MyCounter.vue<template><div class="my-counter"> <h2>{{ count }}</h2> <button @click="increment">+</button> <button @click="decrement">-</button> </div> </template> <script> export default { data() { return { count: 0, }; }, methods: { increment() { this.count++; }, decrement() { this.count--; }, }, }; </script> <style scoped> .my-counter { display: inline-block; } button { margin: 0 5px; } </style> 修改完后保存工程,在 出现以下内容说明搭建成功: DONE Compiled successfully in 2671ms 17:39:34App running at: - Local: http://localhost:8080/ - Network: unavailable Note that the development build is not optimized. To create a production build, run npm run build. 接下来浏览 效果如下: ![]() Counter |
万奢网手机版
官网微博:万奢网服务平台