tsx零基础页面开发全流程(vue环境)

news2024/12/26 23:31:14

tsx零基础页面开发全流程(vue环境)

  • 一 注册 tsx 页面
  • 二 页面布局绘制
  • 三 注册并引入组件
  • 三 LogistTrackCard 组件绘制
  • 四 LogistTrackCard 组件绘制
  • 五 动态数据接驳
    • 5.1 tsx | props传递变量与使用变量
    • 5.2 tsx | 表达式的灵活使用
    • 5.3 tsx | 插槽使用
    • 5.4 tsx | 动态类
  • 六 效果展示

一 注册 tsx 页面

注册 tsx 页面分两步:
首先创建 tsx 页面文件index.tsx。

import { defineComponent } from "vue";

const logistTrack = defineComponent({
  setup(props, { slots }) {
    return () => <div>123</div>;
  },
});

export default logistTrack;

其次将该文件注册到 router 对象上。

import { RouteRecordRaw } from "vue-router";
export const myOrderRoutes: RouteRecordRaw = {
  path: "/service",
  children: [
    {
      path: "logistTrack",
      name: "logistTrack",
      meta: {
        title: "物流跟踪",
      },
      // 注意这里的后缀为js 而不是tsx
      component: () => import("@/views/myOrder/logistTrack/index.js"),
    },
  ],
};

运行,该页面展示 123。
请添加图片描述

二 页面布局绘制

然后我们开始绘制页面,这次绘制的页面是物流追踪页面,整个页面分为上下两大块。这里我们开始引入样式。

新建样式文件。

// index.scss
.logist_track {
  background-color: #f6f6f6;
  .logist_track_title,
  .logist_track_content {
    margin: 18px 24px;
    background-color: #ffffff;
    border-radius: 24px;
  }
}

在 tsx 中引入并使用样式。

// @/views/myOrder/logistTrack/index.tsx
import { defineComponent } from "vue";
import "./index.scss";

const logistTrack = defineComponent({
  setup(props, { slots }) {
    return () => (
      <div class="logist_track" pageTitle="物流跟踪">
        <div class="logist_track_title">123</div>
        <div class="logist_track_content">456</div>
      </div>
    );
  },
});

export default logistTrack;

请添加图片描述

三 注册并引入组件

我们计划将页面的上半部分划分为一个组件,接下来我们注册并引入一个组件。

新建一个组件。

import { defineComponent } from "vue";
import "./index.scss";

const LogistTrackCard = defineComponent({
  setup(props, { slots }) {
    return () => <div>我是一个组件</div>;
  },
});

export default LogistTrackCard;

在页面中引入并使用该组件。

import { defineComponent } from "vue";
import LogistTrackCard from "../components/LogistTrackCard/index";

import "./index.scss";

const logistTrack = defineComponent({
  setup(props, { slots }) {
    return () => (
      <div class="logist_track" pageTitle="物流跟踪">
        <div class="logist_track_title">
          <LogistTrackCard></LogistTrackCard>
        </div>
        <div class="logist_track_content">456</div>
      </div>
    );
  },
});

export default logistTrack;

现在页面展示如下:
请添加图片描述

三 LogistTrackCard 组件绘制

接下来在组件 LogistTrackCard 内绘制静态页面。
组件整体分为两部分,下面的部分分裂为横向排列的 2 块,各占 50%,由 flex 布局而成。
这块没什么难点,直接给出。

import { defineComponent } from "vue";
import "./index.scss";
import arrow_right_gray from "@/assets/icons/arrow_right.png";

const LogistTrackCard = defineComponent({
  setup(props, { slots }) {
    return () => (
      <div class="logist_track_card">
        <div class="title_group">
          <span class="lable">顺丰快递</span>
          <span>SF1223333333</span>
        </div>
        <div class="content">
          <div class="status_group">
            <div class="status">配送中</div>
            <div class="msg">预计32422:00前送达</div>
          </div>
          <div class="line-splice"></div>
          <div class="course">
            <div>东莞</div>
            <img src={arrow_right_gray} alt="" />
            <div>上海</div>
          </div>
        </div>
      </div>
    );
  },
});

export default LogistTrackCard;
.logist_track_card {
  .title_group {
    padding: 0 24px;
    height: 88px;
    font-size: 28px;
    font-family: PingFangSC-Medium, PingFang SC;
    font-weight: 500;
    color: #333333;
    line-height: 88px;
    .lable {
      margin-right: 18px;
      font-family: PingFangSC-Regular, PingFang SC;
      font-weight: 400;
      color: #666666;
    }
  }
  .content {
    padding: 24px;
    display: flex;
    align-items: center;
    .line-splice {
      width: 1px;
      height: 58px;
      border: 1px solid #d8d8d8;
      margin-left: 24px;
    }
    .status_group {
      text-align: center;
      width: 50%;
      .status {
        font-size: 36px;
        font-family: PingFangSC-Medium, PingFang SC;
        font-weight: 500;
        color: #333333;
        line-height: 50px;
        margin-bottom: 14px;
      }
      .msg {
        height: 53px;
        background: #f3f3f3;
        border-radius: 8px;
        font-size: 24px;
        font-family: PingFangSC-Regular, PingFang SC;
        font-weight: 400;
        color: #333333;
        line-height: 53px;
        padding: 0 13px;
      }
    }
    .course {
      display: flex;
      align-items: center;
      justify-content: center;
      width: 50%;
      font-size: 30px;
      font-family: PingFangSC-Regular, PingFang SC;
      font-weight: 400;
      color: #333333;
      line-height: 42px;
      img {
        margin: 0 32px;
        width: 15px;
      }
    }
  }
}

现在页面呈现如下。
请添加图片描述

我们可以美化一下,将组件的白色背景色去掉,添加背景图片。将灰色的箭头图片换为橙色图片。

.logist_track_card {
	background-image: url(../../../../assets/img/order/logist-track-ground.png);
	background-size: cover;
    ...
}

请添加图片描述

四 LogistTrackCard 组件绘制

我们为刚刚留出的位置元素写上内边距和高度,注册组件并写在位置元素中,超出位置元素的部分滚动展示。
这里我们可以使用vant的公共组件来实现。
vant-Steps步骤条 地址:https://vant-contrib.gitee.io/vant/#/zh-CN/steps

1 为刚刚留出的位置元素写上内边距和高度。

.logist_track {
    background-color: #F6F6F6;
    .logist_track_title, .logist_track_content {
        margin: 18px 24px;
        border-radius: 24px;
    }
    .logist_track_content {
        background-color: #FFFFFF;
        padding: 20px 18px;
        height: calc(100% - 314px);
    }
}

2 注册组件,引入组件,在组件内部使用vant-step进度条组件实现。

import { defineComponent } from 'vue'
import './index.scss'

const LogistTrackStep = defineComponent({
  setup(props, { slots }) {
    return () => (
      <div>
        <van-steps direction="vertical" active={0} active-color="#FFB24D">
        <van-step>
          <h3>【城市】物流状态1</h3>
          <p>2016-07-12 12:40</p>
        </van-step>
        <van-step>
          <h3>【城市】物流状态2</h3>
          <p>2016-07-11 10:00</p>
        </van-step>
        <van-step>
          <h3>快件已发货</h3>
          <p>2016-07-10 09:30</p>
        </van-step>
        </van-steps>
      </div>
    )
  }
})

export default LogistTrackStep
import { defineComponent } from 'vue'
import LogistTrackCard from '../components/LogistTrackCard/index'
import LogistTrackStep from '../components/LogistTrackStep/index'

import './index.scss'

const logistTrack = defineComponent({
  setup(props, { slots }) {
    return () => (
      <BasePage class="logist_track" pageTitle="物流跟踪" >
        <div class="logist_track_title" >
          <LogistTrackCard></LogistTrackCard>
        </div>
        <div class="logist_track_content" >
          <LogistTrackStep></LogistTrackStep>
        </div>
      </BasePage>
    )
  }
})

export default logistTrack

请添加图片描述

3 优化step样式

我们可以新写一些样式,通过deep我们可以在使用vant公共样式的基础上有自己的特色。
我们为LogistTrackStep组件新建一个scss文件。(记得在组件内引入)

.logist_track_step {
    .van-step--vertical.van-step--process:first-child .van-step__line {
        border: 1px dashed #FFA800;
        height: calc(100% - 30px);
        top: 50px;
        left: -31px
    }
    .van-step__line {
        height: calc(100% - 30px);
        background-color: transparent;
        border: 1px dashed #E0E0E0;
        top: 50px;
        left: -31px;
    }
    .van-step--vertical .van-step__circle-container .van-step__circle {
        width: 16px;
        height: 16px;
        background-color: #E0E0E0;
    }
}

请添加图片描述

接下来,我们修改一下LogistTrackStep组件展示内容,并添加一些样式。

import { defineComponent } from 'vue'
import './index.scss'

const LogistTrackStep = defineComponent({
  components: {},
  setup(props, { slots }) {
    return () => (
      <div class="logist_track_step">
        <van-steps direction="vertical" active={0} active-color="#FFB24D">
        <van-step>
          <div class="status">配送中</div>
          <div class="time">2023-09-09 06:00:00</div>
          <p class="msg">快件到达 (上海市XX) 完成分,准备配送</p>
        </van-step>
        <van-step>
        <div class="time">2023-09-09 06:00:00</div>
          <p class="msg">快件到达 (上海市XX) 完成分,准备配送</p>
        </van-step>
        <van-step>
        <div class="time">2023-09-09 06:00:00</div>
          <p class="msg">快件到达 (上海市XX) 完成分,准备配送</p>
        </van-step>
        </van-steps>
      </div>
    )
  }
})

export default LogistTrackStep
.logist_track_step {
    ......
    .status {
        font-size: 30px;
        font-family: PingFangSC-Medium, PingFang SC;
        font-weight: 500;
        color: #333333;
        line-height: 42px;
        margin-bottom: 14px;
    }
    .time {
        font-size: 26px;
        font-family: PingFangSC-Regular, PingFang SC;
        font-weight: 400;
        color: #333333;
        line-height: 37px;
        margin-bottom: 12px;
    }
    .msg {
        font-size: 24px;
        font-family: PingFangSC-Regular, PingFang SC;
        font-weight: 400;
        color: #666666;
        line-height: 33px;
    }
}

现在,静态页面已经绘制完成了,接下来是添加动态数据。
请添加图片描述

五 动态数据接驳

动态数据从哪来呢?一般是通过接口请求得到。
这里我们先用一个变量模拟,通过接口请求得到后将数据放到变量上即可。

建立变量,里面有我们所需要的数据,然后我们将数据传入对应组件中。传入的方式还是有props,但是tsx的props与vue文件中不同的是,不再用冒号来标志动态属性,而且使用大括号来包裹变量。

5.1 tsx | props传递变量与使用变量

...
const logistTrack = defineComponent({
  setup(props, { slots }) {
    const logistTrackData = {
      deliverystatus: 2, // 投递状态:0-快递收件(揽件); 1-在途中; 2-正在派件; 3-已签收 4-派送失败 5-疑难件 6-退件签收
      expName: '顺丰快递',  //快递公司名字
      number: '运单编号',
      list: [{
          status: '快件到达 (上海市XX区) 完成分拣,准备配送', // 事件详情
          time: '2023-09-09 06:00:00', // 时间点
      }, {
          status: '快件到达 (上海市XX区) 完成分拣,准备配送', // 事件详情
          time: '2023-09-09 07:00:00', // 时间点
      }, {
          status: '快件到达 (上海市XX区) 完成分拣,准备配送', // 事件详情
          time: '2023-09-09 08:00:00', // 时间点
      }]
    }
    return () => (
      <BasePage class="logist_track" pageTitle="物流跟踪" >
        <div class="logist_track_title" >
          <LogistTrackCard expName={ logistTrackData.expName } number={ logistTrackData.number } ></LogistTrackCard>
        </div>
        <div class="logist_track_content" >
          <LogistTrackStep logistTrackStepList={ logistTrackData.list } deliverystatus={ logistTrackData.deliverystatus }></LogistTrackStep>
        </div>
      </BasePage>
    )
  }
})

export default logistTrack

接下来我们在两个组件中引入对应的props变量,引入方式与vue文件相同,使用变量还是使用单大括号阔起。
引入变量:

...
const LogistTrackCard = defineComponent({
  props: {
    expName: {
      type: String,
      default: ''
    },
    number:  {
      type: String,
      default: ''
    },
  },
  setup(props, { slots }) {
    ...
})

export default LogistTrackCard

使用变量:

...
const LogistTrackCard = defineComponent({
  // ...
  setup(props, { slots }) {
    return () => (
      <div class="logist_track_card">
        <div class="title_group"><span class="lable">{ props.expName }</span><span>{ props.number }</span></div>
        ...
      </div>
    )
  }
})

export default LogistTrackCard

5.2 tsx | 表达式的灵活使用

在第二个组件LogistTrackStep中,我们照常引入变量。

...
const LogistTrackStep = defineComponent({
  props: {
    logistTrackStepList: {
      type: Array<{ time: String, status: String }>,
      default: () => []
    },
    // 投递状态:0-快递收件(揽件); 1-在途中; 2-正在派件; 3-已签收 4-派送失败 5-疑难件 6-退件签收
    deliverystatus:  {
      type: Number,
      default: 0,
    },
  },
  ...
})

export default LogistTrackStep

此时我们可以在页面中使用变量了,但是我们发现有两个问题:
1 logistTrackStepList是一个列表,我们需要循环展示,对应在vue组件中就是v-for属性,但是tsx中又有所不同。
2 deliverystatus是一个数字,我们需要展示对应的文字。

首先解决第一个问题,在tsx中我们可以通过{}包裹,在其中书写表达式,可以是一个函数执行语句,也可以是一个普通的表达式。
v-for不能使用,我们可以通过在{}中执行函数执行语句的方式,执行props.logistTrackStepList.map方法,让其根据列表项的值返回对应的尖括号语句。

// ...
const LogistTrackStep = defineComponent({
  // ...
  setup(props, { slots }) {
    // ...
    return () => (
      <div class="logist_track_step">
        <van-steps direction="vertical" active={0} active-color="#FFB24D">
        {props.logistTrackStepList.map((item, i) => ( 
          <van-step>
            { i? '': <div class="status">配送中</div> }
            <div class="time">{item.time}</div>
            <p class="msg">{item.status}</p>
          </van-step>
        ))}
        </van-steps>
      </div>
    )
  }
})

export default LogistTrackStep

接下来解决第二个问题,我们新建一个对象,将deliverystatus的每一项与对应的字符串对应起来,根据deliverystatus的值取对应的项展示。

// ...
const LogistTrackStep = defineComponent({
  // ...
  setup(props, { slots }) {
    const deliverystatusObj = {
      0: '快递收件(揽件)',
      1: '在途中',
      2: '正在派件',
      3: '已签收',
      4: '派送失败',
      5: '疑难件',
      6: '退件签收',
    }
    return () => (
      // ...
        { i? '': <div class="status">{deliverystatusObj[(props.deliverystatus as keyof typeof deliverystatusObj)]}</div> }
      // ...
    )
  }
})

export default LogistTrackStep

上面通过deliverystatusObj[(props.deliverystatus as keyof typeof deliverystatusObj)取得对应的值,在jsx中等价于deliverystatusObj[props.deliverystatus],as keyof typeof deliverystatusObj是ts语法,是断言一个变量为一个对象的键类型的一种形式。

另外可以看到,这行还写了一个条件表达式,是为了仅在列表的最上方第一项展示物流状态。

到现在为止,物流页面已经编写完毕了,只要接上接口就好。

有同学发现,在物流页面上方的卡片中,有一部分没有接入数据。

请添加图片描述

在页面中有时会有这种情况,有的数据有时有,有时没有,可以使用插槽控制。

5.3 tsx | 插槽使用

我们将没有接入数据的部分写在组件插槽中,如果有传入,就展示当前效果,如果没有传入,就展示简单模式效果。

tsx插槽使用起来很简单,首先我们在父组件logistTrack中,向LogistTrackCard组件注入插槽。

注入插槽分为两部,首先我们将插槽对应内容写在LogistTrackCardSlot方法中返回,然后将LogistTrackCardSlot方法绑定在子组件v-slots属性上,v-slots属性对应一个对象,键为插槽名称,值为返回插槽内容的方法。

// ...
const logistTrack = defineComponent({
  // ...
  setup(props, { slots }) {
    // ...
    const LogistTrackCardSlot = () => {
      return (      
      <div class="content">
        <div class="status_group">
        <div class="status">配送中</div>
        <div class="msg">预计32422:00前送达</div>
        </div>
        <div class="line-splice"></div>
        <div class="course">
        <div>东莞</div>
        <img src={arrow_right_gray} alt="" />
        <div>上海</div>
        </div>
      </div>
      )
    }
    return () => (
      <BasePage class="logist_track" pageTitle="物流跟踪" >
        <div class="logist_track_title" >
          <LogistTrackCard expName={ logistTrackData.expName } number={ logistTrackData.number } v-slots={{ default: () => LogistTrackCardSlot() }} >
          </LogistTrackCard>
        </div>
        <div class="logist_track_content" >
          <LogistTrackStep logistTrackStepList={ logistTrackData.list } deliverystatus={ logistTrackData.deliverystatus }></LogistTrackStep>
        </div>
      </BasePage>
    )
  }
})

export default logistTrack

在子组件中使用插槽也很简单,使用slots.default()引入即可,slots作为setup参数传入。

// ...
const LogistTrackCard = defineComponent({
  // ...
  setup(props, { slots }) {
    console.log(slots.default? slots.default() : '')
    return () => (
      <div class="logist_track_card">
        <div class="title_group"><span class="lable">{ props.expName }</span><span>{ props.number }</span></div>
        { slots.default? slots.default() : '' }
      </div>
    )
  }
})

export default LogistTrackCard

插槽准备完毕后我们可以修改一下样式,让其在插槽存在于不存在的时候展示不同的样式。

5.4 tsx | 动态类

使用动态类即可(与vue不同)。

<div class={['logist_track_card', {simple: slots.default}]}>

当slots.default也就是默认插槽存在时,simple类存在。

六 效果展示

现在我们的页面已经开发完毕了,页面有两种状态,有插槽状态和没有插槽状态。

有插槽状态:
请添加图片描述
没有插槽状态:
请添加图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/424674.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

【Linux系统:进程控制】

目录 1 进程创建 1.1 fork函数 1.2 写时拷贝 1.3 fork常规用法 1.4 fork调用失败的原因 2 进程终止 2.1 进程退出场景 2.2 进程常见退出方法 3 进程等待 3.1 进程等待必要性 3.2 进程等待的方法 3.2.1 wait方法 3.2.2 waitpid方法 3.3 获取子进程status 4 进程程序替…

【hello Linux】Linux项目自动化构建工具-make/Makefile

目录 1.make/Makefile的背景 2. 实例代码 2.1 常规代码执行过程&#xff1a; 2.2 使用make工具执行代码程序&#xff1a; 3. makefile文件内容的解释 3.1 生成解决方案 3.2 清理解决方案 4. 多文件的makefile文件书写 5. 缓冲区 Linux&#x1f337; 1.make/Makefile的背景 1. …

淘宝/天猫店铺订单数据导出、销售报表、数据分析

最近有厂商提出想把天猫店铺的数据拿到后台ERP管理系统中&#xff0c;并能实现线下打印电子面单功能。接手这个需求按照度娘给的指引&#xff0c;申请天猫开发者帐号&#xff0c;但是。。。大厂把订单传送接口关了&#xff0c;只对厂商自研软件开放&#xff0c;还需要租用聚石塔…

力扣118杨辉三角:代码实现+注释详解+其它思考

文章目录第一部分&#xff1a;题目第二部分&#xff1a;代码第三部分&#xff1a;题解3.1 generate()方法解析3.2 main方法调用第四部分&#xff1a;思考第一部分&#xff1a;题目 &#x1f3e0; 链接&#xff1a;118. 杨辉三角 - 力扣&#xff08;LeetCode&#xff09; ⭐ 难…

在Matlab中开发AutoSAR模型的流程(自下而上)

目录 前面 创建模型&#xff0c;环境配置 AutoSAR配置 SWC与Runable Interface Port 前面 前面介绍了AutoSAR软件组件开发的两种方式&#xff0c;其中自下向上的方式&#xff0c;是从模型出发&#xff0c;流程如下。 创建模型&#xff0c;环境配置 1、新建模型&#x…

前端技巧总结---持续更新

易遗漏事件总结 关闭/保存后 重置 一些变量、表单 考虑业务流程 加载数据提示 移动端技巧总结 阿里图库 在原有的基础上加新图标 该代码替换掉原有的 iconfont.css ❗src 请求头要加https&#xff0c;要不然移动端会不显示阿里图标 onBackPress 返回上一级 onBackPr…

【Unity VR开发】结合VRTK4.0:不可移动区域

语录&#xff1a; 生活坏到一定程度就会好起来&#xff0c;因为它无法更坏。努力过后&#xff0c;才知道许多事情坚持坚持&#xff0c;就过来了。 前言&#xff1a; 有时候我们可能并不需要所有的区域都进行移动&#xff0c;而只需要部分区域进行移动&#xff0c;那么我们就要将…

中核武汉 x Tapdata:能源领域老牌央企如何释放数据力量,推进精细化管理

数据孤岛是一直以来的老大难问题&#xff0c;之前也有在寻找相关产品和解决方案&#xff0c;要么太重&#xff0c;要么不容易落地&#xff0c;直到偶然间看到 Tapdata。这是一个小而美的产品&#xff0c;专注实时数据开发领域&#xff0c;其异构数据实时同步能力使我们可以更专…

陶泓达:4.17午间提前布局美盘黄金原油操作建议!

黄金方面&#xff1a; 上周五(4月14日)&#xff0c;美市盘中&#xff0c;黄金金价大幅下跌&#xff0c;盘中一度下跌55美元。随着黄金遭遇技术性抛售压力&#xff0c;回吐一周的大部分涨幅&#xff0c;不过&#xff0c;在周末之前&#xff0c;许多分析师表示&#xff0c;市场早…

MySQL索引及SQL优化

先对索引做个大概回顾,然后我们详细探讨SQL优化 索引 索引的分类 主键索引 设定为主键后数据库会自动建立索引&#xff0c;innodb为聚簇索引 单值索引 即一个索引只包含单个列&#xff0c;一个表可以有多个单列索引【建议不要超过3】 唯一索引 索引列的值必须唯一&#xff0…

算法训练第五十九天 | 503.下一个更大元素II 、42. 接雨水

单调栈part02503.下一个更大元素II题目描述思路42. 接雨水题目描述思路暴力解法双指针优化单调栈解法准备工作单调栈处理逻辑503.下一个更大元素II 题目链接&#xff1a;503.下一个更大元素II 参考&#xff1a;https://programmercarl.com/0503.%E4%B8%8B%E4%B8%80%E4%B8%AA%E…

升级长江存储最新闪存,忆恒创源发布新一代企业级NVMe SSD

2023年4月11日 —— 北京忆恒创源科技股份有限公司&#xff08;Memblaze&#xff09;正式发布搭载高品质国产闪存的PBlaze6 6541 系列企业级PCIe 4.0 NVMe SSD。作为 MUFP 平台化开发的最新作品&#xff0c;PBlaze6 6541 采用长江存储最新一代晶栈 Xtacking 3D NAND&#xff0c…

类中的那点事

c入门必看类类的基本介绍类的实例化类的6个默认成员函数构造函数析构函数拷贝构造函数赋值重载静态成员友元类 类的基本介绍 class为定义类的关键字&#xff0c;ClassName为类的名字&#xff0c;{}中为类的主体&#xff0c;注意类定义结束时后面分号不能省略。类体中内容称为类…

恢复删除的文件,小白也能轻松掌握的5个方法!

案例&#xff1a;如何恢复删除的文件&#xff1f; 【各位大神&#xff01;谁能帮帮我呀&#xff01;一不小心把电脑里很重要的文件删除了&#xff0c;不知道该如何是好&#xff0c;求一个简单方法&#xff0c;感谢大家&#xff01;】 在计算机使用过程中&#xff0c;误删文件…

Tomcat处理请求的全过程

文章目录一、组件详解二、请求处理流程1.总体流程图2.Worker线程任务流程三、源码跟踪1.Tomcat启动线程组件2.Acceptor3.Poller4.Worker总结一、组件详解 在Tomcat处理客户端请求的过程中&#xff0c;这里面有三个组件概念&#xff0c;他们都是线程&#xff0c;分别负责不同的…

NEWS|关于人工智能大型语言模型能否理解的争论

科学家调查了当前人工智能&#xff08;AI&#xff09;研究界的一场激烈的争论&#xff0c;即大型预先训练的语言模型是否可以说可以理解语言——以及任何类人意义上的语言编码的物理和社会情境。他们提供了支持和反对这种理解的论点&#xff0c;以及根据这些论点而出现的更广泛…

7个最新的时间序列分析库介绍和代码示例

时间序列分析包括检查随着时间推移收集的数据点&#xff0c;目的是确定可以为未来预测提供信息的模式和趋势。我们已经介绍过很多个时间序列分析库了&#xff0c;但是随着时间推移&#xff0c;新的库和更新也在不断的出现&#xff0c;所以本文将分享8个目前比较常用的&#xff…

SpringCloud学习(六)——Feign的简单使用

文章目录1. Feign 的使用1.1 引入依赖1.2 添加注解1.3 编写Feign客户端1.4 测试2. Feign中的自定义配置2.1.配置文件方式2.2.Java代码方式3. Feign 性能优化4. Feign的抽取式使用4.1 抽取配置4.2 引入依赖4.3 指明Client在此之前&#xff0c;我们服务之间需要进行调用的时候使用…

Spring Cloud Alibaba全家桶(十)——微服务网关Gateway组件

前言 本文小新为大家带来 微服务网关Gateway组件 相关知识&#xff0c;具体内容包括微服务网关Gateway组件&#xff08;包括&#xff1a;Gateway核心概念&#xff0c;Gateway工作原理&#xff09;&#xff0c;Spring Cloud Gateway环境搭建&#xff0c;路由断言工厂&#xff08…

颜值即正义,献礼就业季,打造多颜色多字体双飞翼布局技术简历模版(Resume)

一年好景君须记&#xff0c;最是橙黄橘绿时。金三银四&#xff0c;秣马厉兵&#xff0c;没有一个好看的简历模板怎么行&#xff1f;无论是网上随便下载还是花钱买&#xff0c;都是一律千篇的老式模版&#xff0c;平平无奇&#xff0c;味同嚼蜡&#xff0c;没错&#xff0c;蜡都…