Vue.js(读音 /vjuː/,类似于 view)是一款渐进式 JavaScript 框架,由尤雨溪于 2014 年创建。它是一套用于构建用户界面的渐进式框架,核心库只关注视图层,易于学习,又能轻松集成到其他库或现有项目中。
v-if、v-show:条件渲染v-for:列表渲染v-model:双向数据绑定v-on:事件处理(简写 @)my-vue-app/
├── src/
│ ├── components/ # 组件目录
│ ├── views/ # 页面视图
│ ├── App.vue # 根组件
│ └── main.js # 入口文件
├── public/ # 静态资源
└── package.json # 项目配置
<template>
<div>
<h1></h1>
<p v-if="showMessage"></p>
<ul>
<li v-for="item in items" :key="item.id">
</li>
</ul>
</div>
</template>
<script>
export default {
data() {
return {
title: 'Hello Vue',
showMessage: true,
items: [
{ id: 1, name: '苹果' },
{ id: 2, name: '香蕉' }
]
}
},
methods: {
handleClick() {
console.log('按钮被点击')
}
}
}
</script>
<style scoped>
h1 {
color: #42b983;
}
</style>
父组件传向子组件(Props)
<!-- 父组件 -->
<ChildComponent :message="parentMessage" @child-event="handleChild" />
<!-- 子组件 -->
<template>
<div></div>
</template>
<script>
export default {
props: ['message'],
emits: ['child-event']
}
</script>
Vue 3 引入了 Composition API,提供更灵活的逻辑复用:
<script setup>
import { ref, computed, onMounted } from 'vue'
// 响应式数据
const count = ref(0)
const double = computed(() => count.value * 2)
// 方法
const increment = () => {
count.value++
}
// 生命周期
onMounted(() => {
console.log('组件已挂载')
})
</script>
npm create vue@latest my-app
cd my-app
npm install
npm run dev
npm run build
npm run preview