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

史志网站建设方案北京网站制作计划

史志网站建设方案,北京网站制作计划,网站点击弹出下载框 怎么做的,上海企业制作网站有哪些内容目的 通过此案例#xff0c;可以简单快速的过一下数据库的操作#xff0c;熟悉app-router这种模式下#xff0c;client component和server component的两种组件中基本的接口使用。 技术栈 nextjs14.2.* app-routervercel/postgres0.10.*typescript5 重要事情说三遍1 ap…目的 通过此案例可以简单快速的过一下数据库的操作熟悉app-router这种模式下client component和server component的两种组件中基本的接口使用。 技术栈 nextjs14.2.* app-routervercel/postgres0.10.*typescript5 重要事情说三遍1 app-router!!! 下面所有的代码和目录结构脱离不开这个模式app-router!!! 下面所有的代码和目录结构脱离不开这个模式app-router!!! 下面所有的代码和目录结构脱离不开这个模式 创建表 初始化操作可以看 最新nextjs中使用postgresSQL 这里 sql语句CREATE TABLE article (content TEXT); 创建一个存放文章内容的表字段为content 并且类型为TEXT. 详细的数据类型可以看这里 字符类型描述character varying(n), varchar(n)变长有长度限制character(n), char(n)定长不足补空白text变长无长度限制 创建文章数据(服务端) sql语句INSERT INTO article VALUES (${body.content}); 接口文件src/api/add-acticle/route.ts import { sql } from vercel/postgres; import { NextResponse } from next/server;export async function GET() {const { rows } await sqlSELECT * FROM article;return Response.json({ rows }) }export async function POST(request: Request) {const body await request.json();await sqlINSERT INTO article VALUES (${body.likes});;return NextResponse.json({ status: 200 }); }创建文章数据客户端 目录src/app/components/create-comp/index.tsx 涉及到react hook使用的组件必须是use client 以下出现的gyp-gao-ui组件库已发布到npm如果只是想demo下自行npm i -S gyp-gao-ui即可使用中出现问题可以看 nextjs中集成富文本编辑器wangEditor或者就是换成随便一个输入框getHostStatic 方法的代码 use client; import { RichText } from gyp-gao-ui; import { useState } from react; import { getHostStatic } from ../../../utils/static-index;export default function CreateText() {const [data, setData] useState();const handleInsert async () {const res await fetch(${getHostStatic()}/api/add-acticle,{method: post,body: JSON.stringify({content: data,}),});// 这里res可以自己在服务端那边组装成想要的格式哦// 然后前端这边就自行根据不同的结果做一些正常/异常处理};const handleChange (value: string) {setData(value);}return (divRichText onChange{handleChange} /div classNamebtn onClick{handleInsert}保存数据/div/div); } 目录src/app/create/page.tsx 主创建页面服务端渲染的 import dynamic from next/dynamic import { Metadata } from next; import ./a.scss; // 天然支持的scss/sassconst RichText dynamic(() import(../components/create-comp), {ssr: false, });export const metadata: Metadata {title: 创建数据, }export default async function CreateText() {return (div classNameaRichText //div); }查询展示文章数据 客户端 服务端数据生成和渲染 getHost 方法代码如下切记该代码的运行环境不能是use client 目录src/utils/index.ts 服务端怎么知道当前项目的域名通过headers上面的字段查询官方文档 import { headers } from next/headers;const logPrefix [blog-render]:-- /** 获取当前域名 */ export const getHost () {const headersList headers();// https://developer.mozilla.org/docs/Web/API/Headers/get// https://nextjs.org/docs/app/api-reference/functions/headersconst host headersList.get(host);const xForwardedHost headersList.get(x-forwarded-host);const referer headersList.get(referer);const protocol headersList.get(x-forwarded-proto);console.info(logPrefix url:, host, referer, protocol)// 获取协议const realProtocol referer?.split(://)[0] || protocol;const realHost host || xForwardedHost;console.info(logPrefix realUrl:, realProtocol, realHost)const url ${realProtocol}://${realHost};return url; }目录src/app/components/pre-comp/index.tsx use client; import { RichTextRender } from gyp-gao-ui;export default function Preview({ content }: {content: string}) {return (div style{{marginBottom: 30px}}RichTextRender content{content} //div); }目录src/app/preview/pages.tsx import { Metadata } from next; import dynamic from next/dynamic; import { getHost } from ../../utils;export const metadata: Metadata {title: 欢迎预览,}const RichTextReader dynamic(() import(../components/pre-comp), {ssr: false, });export default async function Preview() {const url getHost();const data await fetch(${url}/api);const { rows } await data.json();return (div{rows.map((o: { content: string }, i: number) RichTextReader key{i} content{o.content} /)}/div) }效果如下 列表数据展示如下当然demo就不写那么美观的css了 写在最后 找到正确的打开入口学习就会事半功倍觉醒吧前端同志。记得给博主点个赞制作不易感谢大家捧场 还是希望大家可以多多评论区讨论 ↩︎
http://www.dnsts.com.cn/news/32215.html

相关文章:

  • 永州市规划建设局网站深圳网站建设 信科网络
  • 零基础网站建设入门到精通视频教程网上产品免费推广平台
  • 外贸营销网站推广网站开发人员任职资格
  • 绘制网站结构图php做网站视频
  • 网路营销网站策划书好网站推荐一下
  • 网站购买广告位苏州专业建站
  • 南宁做网站设计方案源码猫网站建设ym361
  • 做网站 违法系统搭建是什么意思
  • 贵州做网站找谁工商注册深圳
  • 网站设计的安全尺寸做初中物理题目的网站
  • php网站开发编程软件网站常用的颜色
  • wordpress企业网站seowordpress国内主机推荐
  • 网站建设与网页设计专业wordpress get term
  • 公司网站备案资料WordPress多站点开启多语言
  • 网站如何进行备案简述制作网站的流程
  • 广州微信网站php网站开发案例详解
  • 一个网站开发周期wordpress访问目录
  • 做电影网站赚钱知乎高端品牌女装特价网
  • 效果建网站的公怎样网络营销推广
  • 南阳建网站公司贸易公司做网站有用吗
  • wordpress淘宝客网站模板如何建立自已的网站
  • 专业企业网站设计网络公司ui设计软件sketch
  • 网站制作自己接单网页分析
  • 网站建设怎么做分录photoshop免费下载
  • 域名跟空间都有了怎么做网站厦门学校网站建设
  • 网站开发建设兼职网页游戏设计培训学校
  • 企业网站建立的失败案例浏阳市网站建设
  • 做金融平台网站需要多少钱东莞免费网页制作模板
  • 建设银行手机银行银行下载官方网站美萍会员管理系统
  • 做网站公众号多少钱wordpress产品调用