当前位置: 首页 > news >正文

Vue 2 新手入门指南

1. Vue 2 简介

Vue.js 是一个渐进式 JavaScript 框架,适用于构建用户界面。它采用 数据驱动组件化开发 方式,使前端开发更加高效。

2. Vue 2 安装

(1)通过 CDN 引入

适合简单项目或快速测试:

<script src="https://cdn.jsdelivr.net/npm/vue@2/dist/vue.js"></script>
(2)使用 Vue CLI 安装

Vue CLI 提供了完整的项目架构,适合中大型项目:

# 全局安装 Vue CLI
npm install -g @vue/cli

# 创建新项目
vue create my-vue-app

# 进入项目目录
cd my-vue-app

# 启动开发服务器
npm run serve

3. Vue 2 常用命令

(1)开发相关命令
# 运行开发环境
npm run serve

# 运行生产环境构建
npm run build

# 运行 ESLint 代码检查
npm run lint
(2)依赖管理命令
# 安装依赖
npm install

# 添加新依赖
npm install axios --save  # 例如安装 axios

# 移除依赖
npm uninstall axios
(3)Vue CLI 相关命令
# 查看 Vue CLI 版本
vue --version

# 添加 Vue 路由(需在 Vue CLI 项目中)
vue add router

# 添加 Vuex(状态管理)
vue add vuex

4. Vue 2 核心概念

(1)Vue 实例
new Vue({
  el: '#app',  // 绑定元素
  data: { message: 'Hello Vue!' },  // 定义响应式数据
});
(2)模板语法
<div id="app">
  <p>{{ message }}</p>  <!-- 数据绑定 -->
  <p v-if="isShow">条件渲染</p>
  <p v-for="item in items" :key="item.id">{{ item.text }}</p>
  <button @click="count++">点击增加: {{ count }}</button>
</div>
new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!',
    isShow: true,
    count: 0,
    items: [{ id: 1, text: 'Vue' }, { id: 2, text: 'React' }]
  }
});
(3)Vue 指令
指令作用
v-bind绑定属性,如 :src="imageUrl"
v-model双向数据绑定
v-if/v-else/v-show条件渲染
v-for列表渲染
v-on(简写 @事件绑定,如 @click="method"
v-html渲染 HTML
(4)计算属性与方法
computed: {
  reversedMessage() {
    return this.message.split('').reverse().join('');
  }
}
methods: {
  sayHello() {
    alert('Hello Vue!');
  }
}

5. 组件化开发

(1)创建全局组件
Vue.component('my-component', {
  template: '<p>这是一个全局组件</p>'
});
(2)创建局部组件
Vue.component('child-component', {
  props: ['message'], // 通过 props 接收父组件数据
  template: '<p>子组件接收的数据: {{ message }}</p>'
});

new Vue({
  el: '#app',
  data: { parentMessage: 'Hello from parent' }
});
<div id="app">
  <child-component :message="parentMessage"></child-component>
</div>

6. Vue 2 路由(Vue Router)

(1)安装 Vue Router
vue add router
(2)基本使用
const Home = { template: '<div>首页</div>' };
const About = { template: '<div>关于我们</div>' };

const router = new VueRouter({
  routes: [
    { path: '/', component: Home },
    { path: '/about', component: About }
  ]
});

new Vue({
  el: '#app',
  router
});
<div id="app">
  <router-link to="/">首页</router-link>
  <router-link to="/about">关于我们</router-link>
  <router-view></router-view>
</div>

7. Vuex(状态管理)

(1)安装 Vuex
vue add vuex
(2)基本使用
const store = new Vuex.Store({
  state: { count: 0 },
  mutations: {
    increment(state) { state.count++; }
  }
});

new Vue({
  el: '#app',
  store,
  computed: {
    count() { return this.$store.state.count; }
  },
  methods: {
    increment() { this.$store.commit('increment'); }
  }
});
<div id="app">
  <p>计数: {{ count }}</p>
  <button @click="increment">增加</button>
</div>

8. Vue 2 生命周期

钩子函数触发时机
beforeCreate实例初始化前
created实例创建后
beforeMount挂载前
mounted挂载后(最常用)
beforeUpdate更新前
updated更新后
beforeDestroy销毁前
destroyed销毁后
new Vue({
  el: '#app',
  data: { message: 'Hello Vue!' },
  mounted() {
    console.log('组件已挂载');
  }
});

9. Vue 2 项目部署

# 生产环境打包
npm run build
  • dist/ 目录下的文件可直接部署到服务器。

10. Vue 2 常见问题

(1)数据不响应怎么办?
  • 确保数据是 响应式的,对象属性要提前定义:
data() {
  return { user: { name: '' } }; // 必须先定义 name
}
  • 若动态添加属性:
Vue.set(this.user, 'age', 25);
(2)如何监听数据变化?
watch: {
  message(newVal, oldVal) {
    console.log('message 变化:', newVal);
  }
}
(3)Vue 2 和 Vue 3 的区别?
  • Vue 3 采用 Composition API(组合式 API)
  • Vue 3 语法更简洁,性能更好

总结

  • Vue 2 适用于大多数前端开发场景
  • 常用指令包括 v-modelv-bindv-forv-if
  • 组件化开发提升复用性
  • Vue Router 处理页面跳转,Vuex 负责状态管理
  • 了解生命周期,避免不必要的更新

相关文章:

  • 如何在docker上部署前端nginx服务(VUE)
  • dex2oat配置方法及优化指南
  • 【C++篇】揭开 C++ STL list 容器的神秘面纱:从底层设计到高效应用的全景解析(附源码)
  • 关于在java项目部署过程MySQL拒绝连接的分析和解决方法
  • ubuntu上boost卸载和安装
  • 大模型自动提示优化(APO)综述笔记
  • Win10开启电脑自带录屏截图功能
  • 学Java第三十一天----------多态调用成员的特点
  • FastAPI系列:如何响应txt和json文件
  • 回溯算法(C/C++)
  • 萌新学 Python 之模块管理
  • cursor设备ID修改器 支持0.45.x版本
  • Qt Creator + CMake 构建教程
  • 述职报告中,如何平衡展现个人贡献与团队协作的重要性?
  • Python 函数式编程-偏函数
  • uniapp 本地数据库多端适配实例(根据运行环境自动选择适配器)
  • 支持自动化数据回放
  • DeepSeek+谷云科技智能体,快速构建企业知识问答
  • 203、【数组】NLP分词实现(Python)
  • 自学Java-JavaSE基础加强(异常,泛型,集合框架)
  • 专访|高圆圆:像鸟儿一样,柔弱也自由
  • 优化网络营商环境,上海严厉打击涉企网络谣言、黑灰产等违法犯罪
  • 一季度全国消协组织为消费者挽回经济损失23723万元
  • 上海科创“八杰”赋能新兴产业链:硬核科技,形成良好盈利模式
  • 百济首次实现季度营业利润扭亏,泽布替尼销售额近57亿元
  • 国务院安委会办公室印发通知:坚决防范遏制重特大事故发生