「青训营 X 码上掘金」入营个人名片

85 阅读1分钟

当青训营遇上码上掘金——用 Svelte 技术打造个人名片

刚学了一些前端基础,因为听说svelte是最近才新出的前端框架框架,所以先学习了这个框架。

并根据它的语法简单写了一个展示个人信息的组件。我用的是Github对外开放的API,获取我自己的Github个人信息,包括昵称,头像和个人简介,它可以让我们跨域访问,这样我们就不用自己写api了。

GitHub的开放API是 api.github.com/users/{用户名}… 在它返回的结果中,就会有bio,avatar,name几个字段,可以认为他们对应了昵称,头像,个人简介这三个部分。

Svelte 没有看到官方推荐的 UI 库,所以我只使用了浏览器原生提供的组件样式(其实是基本不怎么会自定义样式)。

我的想法比较简单,通过异步 Ajax 请求把我的头像之类的信息从GitHub的接口中获取到,然后让页面更新为我的个人信息。

代码主要部分是这样的,只有一个文件

<script>
    import { onMount } from "svelte";

    let name = "等待加载...";
    let avatar_url = "xxxxxxxxx";
    let bio = "等待加载...";
    onMount(async () => {
        try {
            const response = await fetch(
                "https://api.github.com/users/我的用户名"
            );
            const data = await response.json();
            console.log(data);
            name = data.name;
            avatar_url = data.avatar_url;
            bio = data.bio;
        } catch (err) {
            name = "加载失败";
            bio = "加载失败";
        }
    });
</script>

<div>
    <img src={avatar_url} alt={name} />
    <h1>{name}</h1>
    <p>{bio}</p>
</div>

可以看到我展示用的组件就是简单的img标签,h1标签和p标签。svelte我个人觉得很舒服,它使用普普通通的let定义就可以让这个变量具有所谓的响应式功能,我在代码里之后对他的修改都可以被它知道,然后自动修改。 我也看过vue的,貌似他还要特别的指定变量是能够做到这一点才行,而在svelte中,我只要像上面这样就行了。

最终效果:

image.png