Vue.js(简称Vue)是一套用于构建用户界面的渐进式JavaScript框架,由尤雨溪于2014年创建。其核心库专注于视图层,具有以下显著特点:
特性 | Vue | React | Angular |
---|---|---|---|
架构模式 | MVVM | 组件化 | MVC |
模板语法 | HTML扩展 | JSX | 模板语法 |
数据绑定 | 双向 | 单向 | 双向 |
学习曲线 | 平缓 | 中等 | 陡峭 |
通过CDN引入:
<script src="https://unpkg.com/vue@3/dist/vue.global.js">script>
使用Vite创建项目(推荐):
npm create vite@latest my-vue-app -- --template vue
cd my-vue-app
npm install
npm run dev
使用Vue CLI:
npm install -g @vue/cli
vue create my-project
my-vue-app/
├── src/
│ ├── assets/ // 静态资源
│ ├── components/ // 组件目录
│ ├── App.vue // 根组件
│ └── main.js // 入口文件
├── public/ // 公共资源
├── package.json // 依赖配置
└── vite.config.js // 构建配置
{{ message }}
显示文本
- {{ item.name }}
export default {
setup() {
// Composition API
},
beforeCreate() {},
created() {},
beforeMount() {},
mounted() {},
beforeUpdate() {},
updated() {},
beforeUnmount() {},
unmounted() {}
}
// ChildComponent.vue
import { ref, reactive, computed, watch } from 'vue'
export default {
setup() {
const count = ref(0)
const state = reactive({ name: 'Vue3' })
const double = computed(() => count.value * 2)
watch(count, (newVal) => {
console.log(`计数变化:${newVal}`)
})
return { count, state, double }
}
}
// store/index.js
import { createStore } from 'vuex'
export default createStore({
state: {
count: 0
},
mutations: {
increment(state) {
state.count++
}
},
actions: {
asyncIncrement({ commit }) {
setTimeout(() => commit('increment'), 1000)
}
}
})
import { createRouter, createWebHistory } from 'vue-router'
const routes = [
{ path: '/', component: Home },
{ path: '/about', component: About }
]
const router = createRouter({
history: createWebHistory(),
routes
})
TodoApp/
├── TodoForm.vue // 输入组件
├── TodoList.vue // 列表组件
└── TodoFilter.vue // 过滤组件
// store/todo.js
export const useTodoStore = defineStore('todo', {
state: () => ({
todos: [],
filter: 'all'
}),
getters: {
filteredTodos() {
// 过滤逻辑
}
},
actions: {
addTodo(text) {
this.todos.push({ id: Date.now(), text, done: false })
}
}
})
组件设计原则:
性能优化:
代码规范:
通过本文的学习,相信您已经掌握了Vue.js的核心概念和开发技巧。建议通过实际项目练习巩固知识,Vue的灵活性和丰富的生态将助您高效完成前端开发任务!
文章说明: