從零開始搭建自己的博客平臺(tái):前端開發(fā)指南(持續(xù)更新-1)

開始動(dòng)手

前端搭建

首先我們最主要的就是前端的項(xiàng)目谷婆,ok,那就讓我們創(chuàng)建一個(gè)空項(xiàng)目,使用next

yarn create next-app
//使用TS
yarn create next-app --typescript

之后按照提示選擇自己的需求堪伍,如果沒有什么需求完全可以瘋狂點(diǎn)擊回車??????,然后我們就看到了項(xiàng)目的基本目錄


image-20230314162209748.png

我們可以看到blog_fe就是我們的項(xiàng)目名稱觅闽,以及下面的各級(jí)目錄

  • node_modules: 項(xiàng)目所依賴的包

  • public: 放一些公共的資源帝雇,圖片或圖標(biāo)。

  • src/page: 這個(gè)就相當(dāng)于項(xiàng)目的路由蛉拙,page下的index文件就是首頁尸闸,我們可以在下面新建文件夾,這就是一個(gè)新的路由,文件夾中的index文件就是頁面

  • src/styles:這里面放著一些我們項(xiàng)目的CSS文件

  • next.config.js: 這是next項(xiàng)目的配置文件吮廉,可以參考官網(wǎng)苞尝,中有具體的詳細(xì)API

現(xiàn)在要做什么:動(dòng)代碼

參考package.json文件,我們打開終端宦芦,cd 到我們的blog_fe目錄中宙址,執(zhí)行yarn dev命令,把這個(gè)項(xiàng)目跑起來调卑。


image-20230314163355268.png

這就是跑起來的樣子抡砂,這個(gè)頁面就是在page/index.tsx中所寫的代碼,我們刪掉所有代碼,替換成以下代碼

export default function Home() {
  return (
     <>111111</>
  )
}

現(xiàn)在頁面內(nèi)容就變成11111了恬涧,ok你現(xiàn)在可以自由的編寫你的代碼了

樣式編寫

由于我們?cè)诖a中是一定要寫樣式的注益,UI框架我使用的是Chakra,便于后期做一些自適應(yīng)气破,CSS我使用的是CSS-IN-JS的方案聊浅,用的styled-components,你可以隨便選用现使,這里我只寫一下我的流程低匙。

First 安裝

//安裝chakra
yarn add @chakra-ui/react @emotion/react @emotion/styled framer-motion
//安裝styled-components
yarn add styled-components

然后我們刪掉styles/Home.module.css文件創(chuàng)建一個(gè)Home.styled.js文件,添加代碼如下

import { Box } from "@chakra-ui/react";
import styled from "styled-components";

//html的標(biāo)簽要用 stlyled.
export const YellowBox = styled.div`
  background-color: yellow;
  width: 100px;
  height: 100px;
`;
//第三方組件的標(biāo)簽要用 stlyled()
export const BlueBox = styled(Box)`
  background-color: blue;
  width: 100px;
  height: 100px;
`;

然后在page/index.tsx中引入他們

import { YellowBox, BlueBox } from "../styles/Home.styled";
export default function Home() {
  return (
    <>
      <YellowBox />
      <BlueBox />
    </>
  );
}

Ok,你先在以及掌握了Chakra 和 styled-components的用法,然后我們簡(jiǎn)簡(jiǎn)單單寫一些自己想寫的內(nèi)容碳锈,他現(xiàn)在變成了這個(gè)樣子


image-20230314164843308.png

那么現(xiàn)在顽冶,問題來了

現(xiàn)在我們發(fā)現(xiàn)了一個(gè)很大的問題,在頁面多次刷新售碳,或者URL改變的時(shí)候樣式會(huì)失效 emm........,費(fèi)勁千辛萬苦之力强重,終于找到了解決的辦法
問題原因:Next是一個(gè)SSR的框架,他會(huì)在服務(wù)端渲染出HTML贸人,然后返回給客戶端间景,在服務(wù)端并沒有樣式給他渲染。
解決辦法:參考styled-components官網(wǎng)艺智,我們將_document.tsx文件的代碼改成官方給的方法

import Document, { DocumentContext, DocumentInitialProps } from "next/document";
import { ServerStyleSheet } from "styled-components";

export default class MyDocument extends Document {
  static async getInitialProps(
    ctx: DocumentContext
  ): Promise<DocumentInitialProps> {
    const sheet = new ServerStyleSheet();
    const originalRenderPage = ctx.renderPage;

    try {
      ctx.renderPage = () =>
        originalRenderPage({
          enhanceApp: (App) => (props) =>
            sheet.collectStyles(<App {...props} />),
        });

      const initialProps = await Document.getInitialProps(ctx);
      return {
        ...initialProps,
        styles: (
          <>
            {initialProps.styles}
            {sheet.getStyleElement()}
          </>
        ),
      };
    } finally {
      sheet.seal();
    }
  }
}

那么現(xiàn)在倘要,問題解決了,我們又可以愉快的編程了十拣。

主頁的頭寫完了封拧,但是身體沒數(shù)據(jù)啊,我們要開始CMS后臺(tái)管理系統(tǒng)的搭建了

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末夭问,一起剝皮案震驚了整個(gè)濱河市泽西,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌缰趋,老刑警劉巖捧杉,帶你破解...
    沈念sama閱讀 211,265評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件陕见,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡糠溜,警方通過查閱死者的電腦和手機(jī)淳玩,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門直撤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來非竿,“玉大人,你說我怎么就攤上這事谋竖『熘” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評(píng)論 0 347
  • 文/不壞的土叔 我叫張陵蓖乘,是天一觀的道長(zhǎng)锤悄。 經(jīng)常有香客問我,道長(zhǎng)嘉抒,這世上最難降的妖魔是什么零聚? 我笑而不...
    開封第一講書人閱讀 56,408評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮些侍,結(jié)果婚禮上隶症,老公的妹妹穿的比我還像新娘。我一直安慰自己岗宣,他們只是感情好蚂会,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著耗式,像睡著了一般胁住。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上刊咳,一...
    開封第一講書人閱讀 49,772評(píng)論 1 290
  • 那天彪见,我揣著相機(jī)與錄音,去河邊找鬼娱挨。 笑死余指,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的让蕾。 我是一名探鬼主播浪规,決...
    沈念sama閱讀 38,921評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼探孝!你這毒婦竟也來了笋婿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,688評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤顿颅,失蹤者是張志新(化名)和其女友劉穎缸濒,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡庇配,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評(píng)論 2 325
  • 正文 我和宋清朗相戀三年斩跌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片捞慌。...
    茶點(diǎn)故事閱讀 38,617評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡耀鸦,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出啸澡,到底是詐尸還是另有隱情袖订,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評(píng)論 4 329
  • 正文 年R本政府宣布嗅虏,位于F島的核電站洛姑,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏皮服。R本人自食惡果不足惜楞艾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望龄广。 院中可真熱鬧硫眯,春花似錦、人聲如沸蜀细。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽奠衔。三九已至谆刨,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間归斤,已是汗流浹背痊夭。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評(píng)論 1 265
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留脏里,地道東北人她我。 一個(gè)月前我還...
    沈念sama閱讀 46,315評(píng)論 2 360
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像迫横,于是被迫代替她去往敵國(guó)和親番舆。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評(píng)論 2 348