当前位置:首页 > VUE

vue实现代码实例

2026-01-22 10:02:22VUE

以下是一个基于 Vue 3 的完整代码实例,包含核心功能实现和常见开发场景的示例:

基础组件示例

<template>
  <div>
    <h1>{{ title }}</h1>
    <button @click="increment">Count: {{ count }}</button>
    <input v-model="inputText" placeholder="Type something..." />
    <p>Input value: {{ inputText }}</p>
  </div>
</template>

<script setup>
import { ref } from 'vue'

const title = 'Vue 3 Example'
const count = ref(0)
const inputText = ref('')

const increment = () => {
  count.value++
}
</script>

<style scoped>
button {
  padding: 8px 16px;
  background-color: #42b983;
  color: white;
  border: none;
  border-radius: 4px;
}
</style>

组件通信示例

父组件:

<template>
  <ChildComponent 
    :message="parentMessage" 
    @update-message="handleUpdate"
  />
</template>

<script setup>
import { ref } from 'vue'
import ChildComponent from './ChildComponent.vue'

const parentMessage = ref('Hello from parent')

const handleUpdate = (newMessage) => {
  parentMessage.value = newMessage
}
</script>

子组件:

<template>
  <div>
    <p>Received: {{ message }}</p>
    <button @click="sendMessage">Send Message</button>
  </div>
</template>

<script setup>
defineProps(['message'])
const emit = defineEmits(['update-message'])

const sendMessage = () => {
  emit('update-message', 'New message from child')
}
</script>

状态管理(Pinia)示例

store/counter.js:

import { defineStore } from 'pinia'

export const useCounterStore = defineStore('counter', {
  state: () => ({
    count: 0
  }),
  actions: {
    increment() {
      this.count++
    }
  },
  getters: {
    doubleCount: (state) => state.count * 2
  }
})

组件中使用:

<template>
  <div>
    <p>Count: {{ counter.count }}</p>
    <p>Double: {{ counter.doubleCount }}</p>
    <button @click="counter.increment()">Increment</button>
  </div>
</template>

<script setup>
import { useCounterStore } from '@/store/counter'

const counter = useCounterStore()
</script>

路由示例

router/index.js:

import { createRouter, createWebHistory } from 'vue-router'
import Home from '../views/Home.vue'
import About from '../views/About.vue'

const routes = [
  { path: '/', component: Home },
  { path: '/about', component: About }
]

const router = createRouter({
  history: createWebHistory(),
  routes
})

export default router

导航组件:

<template>
  <nav>
    <router-link to="/">Home</router-link>
    <router-link to="/about">About</router-link>
  </nav>
  <router-view />
</template>

API请求示例

使用axios进行数据获取:

vue实现代码实例

<template>
  <div v-if="loading">Loading...</div>
  <div v-else>
    <ul>
      <li v-for="item in data" :key="item.id">
        {{ item.name }}
      </li>
    </ul>
  </div>
</template>

<script setup>
import { ref, onMounted } from 'vue'
import axios from 'axios'

const data = ref([])
const loading = ref(true)

onMounted(async () => {
  try {
    const response = await axios.get('https://api.example.com/items')
    data.value = response.data
  } catch (error) {
    console.error('Error fetching data:', error)
  } finally {
    loading.value = false
  }
})
</script>

这些示例涵盖了Vue开发中的常见场景,包括组件基础、状态管理、路由和API交互等核心功能。实际开发中可根据项目需求进行组合和扩展。

标签: 实例代码
分享给朋友:

相关文章

vue抽奖代码实现

vue抽奖代码实现

Vue 抽奖代码实现 基础抽奖组件结构 使用 Vue 3 的 Composition API 实现抽奖功能,核心包括转盘动画、奖品列表和抽奖逻辑。以下为组件基础结构: <templat…

vue代码框实现

vue代码框实现

Vue 代码框实现方法 在 Vue 中实现代码框功能通常需要结合语法高亮库或 UI 组件库。以下是几种常见实现方式: 使用第三方库 Prism.js 安装 Prism.js 及相关依赖: npm…

vue简单代码实现

vue简单代码实现

以下是一个基于 Vue 3 的简单代码实现示例,包含基础功能演示: 基础模板结构 <!DOCTYPE html> <html lang="en"> <head>…

vue实现商品列表代码

vue实现商品列表代码

以下是一个基于Vue.js的商品列表实现示例,包含基础功能如数据渲染、分页和筛选: 基础商品列表渲染 <template> <div class="product-list"&…

vue代码怎么实现拼音

vue代码怎么实现拼音

实现拼音功能的方法 在Vue中实现拼音功能,可以通过拼音转换库将中文转换为拼音。以下是具体实现步骤: 安装拼音转换库 推荐使用pinyin或v-chinese2pinyin库。通过npm或yarn安…

使用vue实例实现通信

使用vue实例实现通信

Vue 实例通信方法 父子组件通信 使用 props 传递数据给子组件,子组件通过 $emit 触发事件传递数据给父组件。 父组件: <template> <ChildCo…