四、Vue3基础四


一、vue3 父子组件传参

**

父组件向子组件传递参数

**
父组件通过v-bind绑定一个数据,然后子组件通过defineProps接受传过来的值。
字符串类型不需要v-bind

父组件中向子组件传递数据(字符串)的方法

<template>
    <div class="container">
        <div class="left-menu">
            <!-- 重点在这里-->
            <Menu title="这个字符串可以传到Menu这个组件中"></Menu>
        </div>
        <div class="right">
            <Header class="header"></Header>
            <Content class="content"></Content>
        </div>
    </div>
    

</template>

<script setup lang='ts'>
import Menu from './Menu/index.vue'
import Header from './Header/index.vue'
import Content from './Content/index.vue'

</script>

<style lang='scss' scoped>
.container{
     
     
    display: flex;
    .left-menu{
     
     
        width: 20%;
        background-color: yellowgreen;
    }
    .right{
     
     
        width: 80%;
        border:1px solid pink;
        flex-flow: column wrap;
        .header{
     
     
            width:100%;
            height: 200px;
            border: 1px solid yellowgreen;
        }
        .content{
     
     
            width: 100%;
            height: 200px;
            border: 1px solid burlywood;
        }
    }
}
</style>

子组件Menu.vue中接收父组件传递过来的字符串

<template>
    <div class="menu">
        左边菜单区域 <br>
        {
  
  {title}}
    </div>
</template>

<script setup lang='ts'>
// 接收来自父组件传递来的数据
// 传递过来的数据用一个类型约束一下
type Props = {
     
     
    title:string
}
defineProps<Props>()
</script>

<style lang='scss' scoped>
</style>

从父组件传递复杂数据类型到子组件中

父组件代码

<template>

    <div class="container">
        <div class="left">
            <!-- 这个:data可以写成v-bind:data -->
            <Menu class="menu" title="将这个title传到Menu子组件中" :data="list"></Menu>
        </div>
        <div class="right">
            <Header class="header"></Header>
            <Content class="content"></Content>
        </div>
    </div>

</template>

<script setup lang='ts'>
import Menu from './Menu/index.vue'
import Header from './Header/index.vue'
import Content from './Content/index.vue'
import {
     
      ref, reactive } from 'vue'

const list = ref<number[]>(
搭建 Vue 3基础框架通常涉及多个方面,包括项目初始化、目录结构设计、核心依赖配置、以及开发环境的设置。以下是一个完整的 Vue 3 基础框架搭建流程,结合了现代前端开发工具链(如 Vite、Vue Router、Vuex、自动路由等)。 ### 一、项目初始化 使用 Vite 创建 Vue 3 项目是目前主流的方式,因其构建速度快、支持 TypeScript 和模块热更新。 ```bash npm create vite@latest my-vue-app -- --template vue cd my-vue-app ``` 随后安装项目依赖: ```bash npm install ``` ### 二、项目目录结构设计 一个典型的 Vue 3 项目结构如下: ``` my-vue-app/ ├── public/ │ └── index.html ├── src/ │ ├── assets/ │ ├── components/ │ ├── views/ │ ├── router/ │ │ └── index.js │ ├── store/ │ │ └── index.js │ ├── App.vue │ └── main.js ├── package.json ├── vite.config.js └── README.md ``` 该结构支持组件化开发、路由管理和状态管理[^2]。 ### 三、配置 Vue Router 安装 Vue Router: ```bash npm install vue-router@4 ``` 创建 `src/router/index.js`: ```javascript import { createRouter, createWebHistory } from &#39;vue-router&#39; import HomeView from &#39;../views/HomeView.vue&#39; const routes = [ { path: &#39;/&#39;, component: HomeView } ] const router = createRouter({ history: createWebHistory(), routes }) export default router ``` 在 `main.js` 中挂载路由: ```javascript import { createApp } from &#39;vue&#39; import App from &#39;./App.vue&#39; import router from &#39;./router&#39; createApp(App).use(router).mount(&#39;#app&#39;) ``` ### 、配置 Vuex 状态管理 安装 Vuex: ```bash npm install vuex@next ``` 创建 `src/store/index.js`: ```javascript import { createStore } from &#39;vuex&#39; export default createStore({ state: { count: 0 }, mutations: { increment(state) { state.count++ } }, actions: { increment({ commit }) { commit(&#39;increment&#39;) } }, modules: {} }) ``` 在 `main.js` 中引入: ```javascript import store from &#39;./store&#39; createApp(App).use(store).use(router).mount(&#39;#app&#39;) ``` ### 五、自动路由配置(可选) 可以使用 `unplugin-vue-router` 插件实现自动路由生成,无需手动配置每条路由。 安装插件: ```bash npm i -D unplugin-vue-router ``` 在 `vite.config.js` 中配置: ```javascript import VueRouter from &#39;unplugin-vue-router/vite&#39; export default defineConfig({ plugins: [ VueRouter({}), // 其他插件... ] }) ``` ### 六、全局样式与自动导入配置 可以使用 `unplugin-auto-import` 和 `unplugin-vue-components` 实现自动导入 Vue API 和组件。 安装插件: ```bash npm i -D unplugin-auto-import unplugin-vue-components ``` 配置 `vite.config.js`: ```javascript import AutoImport from &#39;unplugin-auto-import/vite&#39; import Components from &#39;unplugin-vue-components/vite&#39; export default defineConfig({ plugins: [ AutoImport({ /* 配置 */ }), Components({ /* 配置 */ }), // 其他插件... ] }) ``` ### 七、代码规范与 ESLint 配置(可选) 安装 ESLint 及相关插件: ```bash npm install eslint eslint-plugin-vue eslint-plugin-jsx eslint-config-prettier eslint-plugin-vuejs-accessibility --save-dev ``` 创建 `.eslintrc.js` 文件: ```javascript module.exports = { root: true, env: { browser: true, es2021: true }, extends: [ &#39;eslint:recommended&#39;, &#39;plugin:vue/vue3-recommended&#39;, &#39;plugin:prettier/recommended&#39; ], parserOptions: { ecmaVersion: &#39;latest&#39;, sourceType: &#39;module&#39; }, rules: { // 自定义规则 } } ``` ### 八、构建与运行项目 配置完成后,可以使用以下命令启动开发服务器: ```bash npm run dev ``` 构建生产环境包: ```bash npm run build ``` ### 九、总结 通过以上步骤,已经完成了 Vue 3 基础框架的搭建,包括: - 使用 Vite 初始化项目 - 配置 Vue Router 和 Vuex - 实现自动路由和自动导入 - 集成代码规范工具如 ESLint - 设置全局样式和模块管理 该基础框架适合用于中Vue 3 应用的开发,具备良好的可扩展性和维护性[^3]。 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

永恒的宁静

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值