当前位置: 首页 > wzjs >正文

洛阳建站推广公司长春网站优化指导

洛阳建站推广公司,长春网站优化指导,b2c商城定制,培训加盟1. Vue 3 项目的文档结构 Vue 3 项目通常基于 Vue CLI 或 Vite 等工具创建,其文档结构如下: 常见目录结构 my-vue-project/ ├── public/ # 静态资源目录 │ ├── index.html # 入口页面 ├── src/ …

1. Vue 3 项目的文档结构

Vue 3 项目通常基于 Vue CLI 或 Vite 等工具创建,其文档结构如下:

常见目录结构

my-vue-project/
├── public/                # 静态资源目录
│   ├── index.html         # 入口页面
├── src/                   # 源代码目录
│   ├── assets/            # 静态资源(如图片、样式文件等)
│   ├── components/        # Vue 组件
│   ├── views/             # 页面级组件
│   ├── router/            # 路由配置
│   ├── store/             # 状态管理(Vuex)
│   ├── App.vue            # 根组件
│   ├── main.js            # 入口文件
├── package.json           # 项目依赖配置
├── vue.config.js          # Vue 配置文件(可选)

各部分说明

  • **public/**:存放静态资源,如 index.html,它是项目的入口页面

  • **src/**:存放项目的源代码。
    • **assets/**:存放图片、字体等静态资源。

    • **components/**:存放可复用的 Vue 组件。

    • **views/**:存放页面级组件。

    • **router/**:存放路由配置文件。

    • **store/**:存放 Vuex 状态管理相关代码。

    • **App.vue**:项目的根组件

    • **main.js**:项目的入口文件,负责初始化 Vue 应用。

2. main.jsindex.htmlApp.vue 的相互调用关系

index.html

  • 这是项目的入口页面,通常由 Vue CLI 或 Vite 自动生成。

  • 它通过 <div id="app"></div> 定义了一个挂载点Vue 应用会通过这个挂载点渲染到页面上

  • 示例:
    <!DOCTYPE html>
    <html lang=""><head><meta charset="UTF-8"><link rel="icon" href="/favicon.ico"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Vite App</title></head><body><div id="app"></div>   //定义挂载点<script type="module" src="/src/main.js"></script>  //挂载main.js(创建vue应用)</body>
    </html>
    

main.js

  • 这是 Vue 项目的入口文件,负责创建 Vue 应用实例,并将其挂载到 index.html 中的 <div id="app"></div>

  • 示例:
    import { createApp } from 'vue';
    import App from './App.vue';createApp(App).mount('#app');
    
  • 在这段代码中:
    • 使用 createApp 创建一个 Vue 应用实例。

    • App.vue 作为根组件传递给 createApp

    • 使用 .mount('#app') 将应用挂载到 index.html 中的 <div id="app"></div> 上。将 Vue 应用的根组件挂载到页面上的指定 DOM 元素(挂载点,即id="app"的div)中,启动 Vue 应用。

    • 没有 .mount('#app') 的后果:Vue 应用不会被挂载到页面上,页面上不会显示任何 Vue 组件的内容。

    • 挂载点:通常是 index.html 中的 <div id="app"></div>

App.vue

  • 这是项目的根组件,是所有组件的父组件。

  • 它通常包含全局布局和一些全局组件。

  • 示例:
    <script setup>
    import HelloWorld from './components/HelloWorld.vue'
    import TheWelcome from './components/TheWelcome.vue'
    </script><template><header><img alt="Vue logo" class="logo" src="./assets/logo.svg" width="125" height="125" /><div class="wrapper"><HelloWorld msg="You did it!" /></div></header><main><TheWelcome /></main>
    </template><style scoped>
    header {line-height: 1.5;
    }.logo {display: block;margin: 0 auto 2rem;
    }@media (min-width: 1024px) {header {display: flex;place-items: center;padding-right: calc(var(--section-gap) / 2);}.logo {margin: 0 2rem 0 0;}header .wrapper {display: flex;place-items: flex-start;flex-wrap: wrap;}
    }
    </style>
    

调用关系

  1. **index.html**:定义了挂载点 <div id="app"></div>

  2. **main.js**:创建 Vue 应用实例,并将其挂载到 index.html<div id="app"></div> 上。

  3. **App.vue**:作为根组件,被 main.js 加载并渲染到页面上。

3. 新开发页面的加载位置

功能需求

  • 类似于百度查询的页面,用户输入问题,点击发送或按下回车键后,调用后端 API 获取回答,并显示在页面上。

代码加载位置

  • **App.vue**:作为根组件,可以将查询页面的逻辑封装在其中。

  • **src/components/**:如果查询页面是一个独立的组件,可以将其放在 components 目录下,例如命名为 AISearch.vue

示例代码

如果放在 App.vue
<template><div class="chat-container"><div v-for="(msg, index) in messages" :key="index"><div :class="msg.type === 'user' ? 'user-msg' : 'bot-msg'">{{ msg.content }}</div></div><input v-model="newQuestion" @keyup.enter="sendMessage" /></div>
</template><script setup>
import { ref } from 'vue';
import axios from 'axios';const messages = ref([]);
const newQuestion = ref('');const API_URL = "/api/ask";async function sendMessage() {const response = await axios.post(API_URL, {question: newQuestion.value});messages.value.push({ type: 'bot', content: response.data.answer });newQuestion.value = '';
}
</script><style>
.user-msg { align-self: flex-end; background: #0084ff; color: white; }
.bot-msg { align-self: flex-start; background: #f0f0f0; }
</style>
如果放在独立组件 AISearch.vue
  1. **AISearch.vue**:

    <template><div class="chat-container"><div v-for="(msg, index) in messages" :key="index"><div :class="msg.type === 'user' ? 'user-msg' : 'bot-msg'">{{ msg.content }}</div></div><input v-model="newQuestion" @keyup.enter="sendMessage" /></div>
    </template><script setup>
    import { ref } from 'vue';
    import axios from 'axios';const messages = ref([]);
    const newQuestion = ref('');const API_URL = "/api/ask";async function sendMessage() {const response = await axios.post(API_URL, {question: newQuestion.value});messages.value.push({ type: 'bot', content: response.data.answer });newQuestion.value = '';
    }
    </script><style>
    .user-msg { align-self: flex-end; background: #0084ff; color: white; }
    .bot-msg { align-self: flex-start; background: #f0f0f0; }
    </style>
    
  2. **在 App.vue 中引入并使用 AISearch.vue**:

    <template><div id="app"><AISearch /></div>
    </template><script>
    import AISearch from './components/AISearch.vue';export default {components: {AISearch}
    };
    </script>
    

总结

  • 如果查询页面是项目的唯一功能,可以直接将代码放在 App.vue 中。

  • 如果项目结构更复杂,建议将查询页面封装为独立组件(如 AISearch.vue),并在 App.vue 中引入使用。

http://www.dtcms.com/wzjs/478124.html

相关文章:

  • 盐山做网站中国十大搜索引擎排名最新
  • 用axure原型设计做网站网络维护公司
  • 四川建筑资质证书查询seol英文啥意思
  • 烟台h5网站建设seo课程培训机构
  • 珠海新盈科技 网站建设网络广告推广方式
  • 获取iis中网站日志文件保存路径网上怎么找人去推广广告
  • java怎么做网页郑州网站seo优化
  • 百度哪个网站做贸易推广普通话奋进新征程
  • 网站备案中 解析地址app营销模式有哪些
  • 贵州安顺网站建设东莞网络推广代运营
  • 今日新闻摘抄50字百度sem优化师
  • wordpress入门全套视频教程seo诊断工具
  • 大连网站建设百度推广营销中心
  • 图库素材网站模板友情链接发布
  • 企业网站开发 metinfo缅甸今日新闻
  • 企业网站建设管理系统b2b电子商务网站都有哪些
  • wordpress显示标签图片seo独立站优化
  • 长沙有哪些知名网站网域名解析ip查询
  • 网站会员充值接口怎么做的nba最新消息新闻报道
  • dedecms网站关键字在哪个表福建百度开户
  • 网站精品案例互联网广告销售是做什么的
  • 做软装有什么网站找图片深圳百度地图
  • 做app和做网站互联网营销师证书查询入口
  • 织梦个人网站模板如何快速推广自己的产品
  • 园区网站建设服装店营销策划方案
  • 宁波网站关键词优化排名北京度seo排名
  • 字体版权登记网站百度关键词优化送网站
  • 福建省晋江市建设局网站中国新闻今日头条
  • 怎么做免费网站推广seo职位描述
  • 站长工具5118百度集团总部在哪里