目录Vue.js 简介基础技巧 2.1 数据绑定与事件处理 2.2 条件渲染与列表渲染 2.3 计算属性与侦听器组件化开发 3.1 创建组件 3.2 使用组件 3.3 组件通信状态管理 4.1 Vue...
Vue.js 是一个渐进式JavaScript框架,用于构建用户界面和单页应用程序。它易于上手,且拥有丰富的生态系统,包括官方提供的脚手架工具Vue CLI、路由管理器Vue Router和状态管理库Vuex。
v-model 实现数据双向绑定v-on 或 @ 指令绑定事件处理器// 绑定数据
<template> <input v-model="message">
</template>
// 绑定事件
<template> <button @click="handleClick">Click me</button>
</template>
<script>
export default { data() { return { message: 'Hello Vue!' }; }, methods: { handleClick() { alert(this.message); } }
};
</script>v-if、v-else-if 和 v-else 实现条件渲染v-for 实现列表渲染<template> <div> <h1 v-if="user">{{ user }}</h1> <h1 v-else>No user</h1> <ul> <li v-for="item in items" :key="item.id">{{ item.name }}</li> </ul> </div>
</template><template> <div> <input v-model="message"> <p>{{ reversedMessage }}</p> </div>
</template>
<script>
export default { data() { return { message: '' }; }, computed: { reversedMessage() { return this.message.split('').reverse().join(''); } }, watch: { message(newValue, oldValue) { console.log(`message changed from ${oldValue} to ${newValue}`); } }
};
</script><!-- 子组件:Child.vue -->
<template> <div>{{ message }}</div>
</template>
<script>
export default { props: ['message']
};
</script>
<!-- 父组件 -->
<template> <child :message="parentMessage"></child>
</template>
<script>
import Child from './Child.vue';
export default { components: { Child }, data() { return { parentMessage: 'Hello from parent' }; }
};
</script>components 属性在组件内部注册组件<!-- 父组件 -->
<template> <div> <child :message="parentMessage"></child> <child-component></child-component> </div>
</template>
<script>
import Child from './Child.vue';
import ChildComponent from './ChildComponent.vue';
export default { components: { Child, 'child-component': ChildComponent }, data() { return { parentMessage: 'Hello from parent' }; }
};
</script>$emit 和 $on 实现组件间的通信// 子组件
this.$emit('event-name', payload);
// 父组件
this.$on('event-name', handler);Vuex 是一个专门为 Vue.js 应用程序开发的状态管理模式和库。它采用集中式存储管理所有组件的状态,并以相应的规则保证状态以一种可预测的方式发生变化。
// store.js
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(context) { context.commit('increment'); } }, getters: { doubleCount(state) { return state.count * 2; } }
});Vue Router 是 Vue.js 的官方路由管理器。它为单页面应用程序提供了一种简洁的解决方案,通过配置路由映射实现页面跳转。
import Vue from 'vue';
import Router from 'vue-router';
import Home from './views/Home.vue';
Vue.use(Router);
export default new Router({ routes: [ { path: '/', name: 'home', component: Home }, { path: '/about', name: 'about', component: () => import('./views/About.vue') } ]
});{ path: '/user/:id', component: User, children: [ { path: 'profile', name: 'user-profile', component: UserProfile }, { path: 'posts', name: 'user-posts', component: UserPosts } ]
}使用动态 import() 语法实现异步组件加载,减少首屏加载时间。
const AsyncComponent = () => import('./AsyncComponent.vue');使用 TypeScript 提高代码质量和可维护性。
import Vue, { Component } from 'vue';
@Component
export default class MyComponent extends Vue { // ...
}根据项目需求设计合理的组件结构和路由配置。
使用 Vue.js 开发一个电商平台,包括商品展示、购物车、订单管理等模块。
使用 Vue.js 开发一个企业级应用,实现员工管理、项目管理、财务管理等功能。
通过以上实战技巧,你可以快速提升 Vue.js 项目开发效率,为用户带来更好的体验。