看懂vue3项目所需的一些基础知识

一、Composition API (组合式API)
    1、setup和ref的基本使用

<template>
  <h2>count:{{count}}</h2>
  <h2>m1:{{m1}}</h2>
  <h2>m2:{{m2}}</h2>
  <hr>
  <button @click="update">更新</button>
</template>

<script>
import {ref} from 'vue'
export default {

  /* 使用vue3的composition API */
  setup () {

    // 定义响应式数据 ref对象
    const count = ref(1)
    const m1=ref('abc')
    // 对象类型的数据
    const m2=ref({
      loginId: 'pjz0000',
      loginBefEntDtm: new Date(),
      usrMlAdr: 'carlospan@foxmail.com'
    })
    console.log(count)

    // 更新响应式数据的函数
    function update () {
      // alert('update')
      count.value = count.value + 1
    }

    return {
      count,
      m1,
      m2,
      update
    }
  }
}
</script>

补充说明,reactive和ref用法类似,如果涉及到复杂类型的数据,比如对象和数组,一般建议用reactive,对象类型也可以用ref,不过实际上内部也是借助reactive代理proxy来实现的。

二、provide和inject 实现嵌套组件之间的数据传递

注意点:只能实现父组件向子组件传递数据

父组件 向下传递数据

import { provide } from 'vue'
export default{
    setup(){
        provide("service","业务")
    }
}

子组件 获取父组件传过来的数据

import { inject } from 'vue'
export default{
    setup(){
        //接收数据
        const service=inject("service")
    }
}

三、前端框架Vue——vue-i18n ,vue项目中如何实现国际化,$t的用法

需求分析,页面右上角有一个中英文切换的按钮,点击按钮可将网页切换到不同的语言。

以下步骤已省去 vue-i18n的安装、引入、挂载等,详情请查阅参考链接

 1、准备本地的翻译信息


const messages = {
 zh: {
  message: {
  hello:'好好学习,天天向上!'
  }
 },
 en: {
  message: {
  hello:'good good study, day day up!'
  }
 }
}

 2、vue-i18n 数据渲染的模板语法     {{ $t("") }}

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="X-UA-Compatible" content="ie=edge">
<title>Document</title>
<script type="text/javascript" src="src/main.js"></script>
</head>
<body>
<div id="app">
<h1 style="font-size: 16px; text-align: center;">{{ $t("message.hello") }}</h1>
</div>
</body>
</html>

参考链接前端框架Vue——vue-i18n ,vue项目中如何实现国际化,$t的用法_$t 国际化_Dream_xun的博客-CSDN博客

四、Axios网络请求的封装

1、网络请求方法及相关配置信息的封装,在src目录下创建文件夹utils,并创建文件request.js,用来存储网络请求对象
import axios from 'axios'
import { getToken } from './CookieUtils'

export const instance = axios.create({
  baseURL: process.env.BASE_API,
  timeout: 1000 * 180
})

instance.interceptors.request.use(
  config => {
    if (getToken()) {
      config.headers.Authorization = 'Bearer ' + getToken()
    }
    return config
  },
  error => Promise.error(error)
)

export const get = (url, params = {}) => {
  return new Promise((resolve, reject) => {
    instance.get(url, {
      params
    }).then((response) => {
      resolve(response.data)
    }, err => {
      reject(err)
    })
  })
}

export const post = (url, data = {}) => {
  return new Promise((resolve, reject) => {
    instance.post(url, data, {
      headers: {
        'Content-Type': 'application/json'
      }
    }).then((response) => {
      resolve(response.data)
    }, err => {
      reject(err)
    })
  })
}

// export default { get, post, request:instance };

2、创建一个api文件夹,用来集中存放网络请求

3、设置请求转发(请求代理)

在 vue.config.js 中对 devServer 进行配置:

 为什么跨域? 因为浏览器是由同源策略的

devServer 就是vuecli在开发环境给我们提供的一个代理服务器,(使用的是 http-proxy-middleware)

devServer 就相当于 用一个 中间件服务器来访问,服务器是没有 同源策略的

  devServer: {
    host: "localhost",//配置本项目运行主机
    port: 8080,//配置本项目运行端口
    //配置代理服务器来解决跨域问题
    proxy: {
      // ‘/api’ 的作用就是 替换 baseURL 的,假如这里我用的 localhost:8080 ,前端请求时直接用 /api 就行了
      //  ‘/api’ 只在前端请求时添加,而后端不需要添加 /api 这个路径
      "/api": {
        target: "http://localhost:3008", //配置要替换的后台接口地址
        // changeOrigin设置为true时,服务器收到的请求头中的host为http://11.111.11.111:5000
        // 设置为false时,服务器收到的请求头中的host为http://localhost:8080
        // 默认设置为true
        changOrigin: true, //配置允许改变Origin
        ws: true, // proxy websockets
        pathRewrite: {
          "^/api": "/",
          //pathRewrite: {'^/api': '/'} 重写之后url为 http://localhost:8080/xxxx
          //pathRewrite: {'^/api': '/api'} 重写之后url为http://localhost:8080/api/xxxx
        },
      },
    },
  },

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
要快速理解一个 Vue 项目,可以按照以下步骤进行: 1. 确定项目结构:首先,查看项目的目录结构。了解项目中的主要文件夹和文件,例如 src 文件夹、components 文件夹、router.js、store.js 等。这将帮助您获得项目的整体概览。 2. 查看入口文件:查看项目的入口文件,通常是 main.js。这个文件通常包含 Vue 实例的创建、路由配置、状态管理等核心设置。阅读这个文件可以帮助您理解整个项目的基本架构。 3. 浏览组件:查看项目中的组件文件夹,了解项目中的各个组件。阅读组件的代码和模板可以帮助您理解项目的不同功能和界面。特别关注根组件(通常是 App.vue),这是整个应用程序的起点。 4. 理解路由配置:如果项目使用了 Vue Router 进行路由管理,查看 router.js 文件或相关配置文件。了解项目的路由结构和各个路由对应的组件,以及路由守卫的使用情况。 5. 状态管理:如果项目使用了 Vuex 进行状态管理,查看 store.js 文件或相关配置文件。了解项目中的状态管理逻辑和数据流动方式。 6. 阅读 API 调用:查看项目中的 API 调用代码,了解项目与后端交互的方式。这可以帮助您理解数据的获取和处理过程。 7. 辅助工具和插件:查看项目中使用的辅助工具和插件,例如 Axios、Element UI、vue-router、vuex 等。了解这些工具和插件的使用方式可以更好地理解项目的功能和实现。 8. 运行和调试:最后,启动项目并在浏览器中查看应用程序。通过与实际运行项目并进行调试,可以更深入地理解项目的运行和交互方式。 通过以上步骤,您应该能够快速了解一个 Vue 项目的基本结构、功能和实现方式。当然,在实际的项目中,您可能还要深入研究和阅读特定模块的代码,以更全面地理解项目。祝您在理解 Vue 项目时顺利!如有其他问题,请随时提问。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值