实现vue
安装 Vue.js
使用 npm 安装 Vue.js:
npm install vue
通过 CDN 引入 Vue.js:
<script src="https://unpkg.com/vue@3/dist/vue.global.js"></script>
创建 Vue 实例
在 HTML 中创建一个根元素:
<div id="app"></div>
在 JavaScript 中创建 Vue 实例:
const app = Vue.createApp({
data() {
return {
message: 'Hello Vue!'
}
}
})
app.mount('#app')
数据绑定
在模板中使用双大括号语法绑定数据:
<div id="app">
{{ message }}
</div>
使用 v-bind 指令绑定属性:
<div v-bind:id="dynamicId"></div>
事件处理
使用 v-on 指令监听事件:
<button v-on:click="increment">Click me</button>
在 Vue 实例中定义方法:
methods: {
increment() {
this.count++
}
}
条件渲染
使用 v-if 指令进行条件渲染:
<p v-if="seen">Now you see me</p>
使用 v-else 添加 else 块:
<p v-if="seen">Now you see me</p>
<p v-else>Now you don't</p>
列表渲染
使用 v-for 指令渲染列表:
<ul>
<li v-for="item in items" :key="item.id">
{{ item.text }}
</li>
</ul>
计算属性
定义计算属性:
computed: {
reversedMessage() {
return this.message.split('').reverse().join('')
}
}
在模板中使用计算属性:
<p>{{ reversedMessage }}</p>
组件系统
注册全局组件:
app.component('todo-item', {
props: ['todo'],
template: `<li>{{ todo.text }}</li>`
})
在模板中使用组件:
<ol>
<todo-item
v-for="item in groceryList"
v-bind:todo="item"
v-bind:key="item.id"
></todo-item>
</ol>
生命周期钩子
使用生命周期钩子:
created() {
console.log('Component created')
},
mounted() {
console.log('Component mounted')
}
单文件组件
创建 .vue 文件:
<template>
<p>{{ greeting }} World!</p>
</template>
<script>
export default {
data() {
return {
greeting: 'Hello'
}
}
}
</script>
<style scoped>
p {
font-size: 2em;
text-align: center;
}
</style>
Vue CLI 项目
安装 Vue CLI:
npm install -g @vue/cli
创建新项目:
vue create my-project
运行开发服务器:

npm run serve






