首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Next.js + TypeScript 搭建一个简易博客系统

首先准备博客文件,根目录下创建 markdown 文档,写入几篇 md 格式博客。 然后我们借助 gray-matter md 文件解析数据。...也就是最原始前端渲染方式,页面在浏览器获取到 JavaScript 和 CSS 等文件后开始渲染。路由是客户端路由,也就是目前最常见 SPA 单应用。 缺点 但这种方式会造成两个问题。...因为数据本来不在页面上,通过 ajax 请求后渲染到页面上。 文章列表都是前端渲染,我们称之为客户端渲染。...我们数据就在文件夹里面,直接读取数据就可以,没必要发送 AJAX。 那么,应该如何获取获取 posts 呢?...含有静态内容,用于用户直接访问 post.js 也含有静态内容,用于快速导航(与 HTML 对应) posts.json 含有数据,跟 posts.js 结合得到页面 那为什么不直接把数据放入 posts.js

3.5K20
您找到你想要的搜索结果了吗?
是的
没有找到

WeChat 文章列表页面(二)

,业务数据通常都放置在自己服务器,然后通过 HTTP 请求来访问服务器提供 RESTFUI API,从而实现数据获取接下来,我们尝试将编码在 post.wxml 文件里数据移植到 post.js...,在 post.js 中加入一个临时变量 postData 来模拟文章数据,并将上一小节测试生命周期代码移除,编写完成后代码如下:Page({ data: { date: "Jan 28...然后对 DOM 标签进行复制,从而实现数据显示,但在小程序,是没有 DOM 结构,无法通过这样方式,将数据“填充”到页面当中在现在流行 MVC 或者 MVVM 框架,如 AngularJS、...post.js 文件,同一篇文章数据组成一个数组Page({ data: { }, onLoad:function(){ var postList = [{ object:...: postList }) }})列表渲染 wx:for上一小节,我们已经把三篇文章数据提取到 post.js 文件中了,但是 wxml 文件我们并没有改写,我们固然可以像改写第一篇文章一样,

1.1K41

Next.js静态页面渲染技术(静态生成和服务端渲染):BSRSSRSSG

next是一款用JS开发全栈框架,它是基于express框架基础上开发而成,可以用react写客户端,node.js写服务端。一份代码可在前后端同时运行,这在next称之为同构!...如何做SSG:那么后端渲染还需要通过ajax来获取渲染内容么?也可以,axios支持服务端使用,但是这样有点傻,资源就在服务端为什么还需要绕远路请求ajax来获取一次资源呢?...这就是同构 SSR 好处,后端可以将数据直接传给前端,而不需要 AJAX 异步获取为什么不直接把数据放入 posts.js 呢?...可以获取数据静态内容+数据(本地获取) 就得到了完整页面代替了之前 静态内容+动态内容(AJAX 获取)三种文件类型build 完成后,我们查看.next 文件里面,发现 posts.html、posts.js...、posts.jsonposts.html 含有静态内容,用于用户直接访问post.js 也含有静态内容,用于快速导航(与 HTML 对应)posts.json 含有数据,跟 posts.js 结合得到页面

3.4K20

React学习笔记(二)—— JSX、组件与生命周期

应用程序 (SPA) 是加载单个HTML 页面并在用户与应用程序交互时动态更新该页面的Web应用程序。...浏览器一开始会加载必需HTML、CSS和JavaScript,所有的操作都在这张页面上完成,都由JavaScript来控制。因此,对单应用来说模块化开发和设计显得相当重要。...; 但是,帖子列表数括依然存在于 PostList如何将数据传递给每个 PostItem 组件呢?...它使您组件可以在可能更改之前DOM捕获一些信息(例如滚动位置),例如在聊天气泡中用来计算滚动高度。...- perScrollHeight) 代码: github代码 3.7、定义一个子组件,每隔1秒数字加1,在父组件定义一个按钮进行显示隐藏子组件,隐藏子组件时要求停止计数,点击显示0开始重新计数

5.5K20

WeChat 模块、模板与缓存

听说南方北上火车都必须经过这条铁路。火车大多在晚上经过,但也不定时只有在夜深人静时候,火车声音才能从远方传来......postList}定义好模块后,我们还需要在 post.js 引入 data.js 这个模块var dataObj = require("../.....“组件”,供其他多个地方使用,就像是一个简单 image 组件就可以实现图片显示功能接下来,我们把 post.wxml 标签关于文章代码剪切到 post-item-tpl.wxml...同文章相关样式作为模板“打包”起来,并在 post.wxss 文件顶部添加如下代码:@import "post-item/post-item-tpl.wxss";我们之前讲过,列表渲染 wx:...,如果模板仅仅是静态 wxml,不涉及数据传递,可以使用 include,但如果模板涉及数据绑定,还是建议使用 import缓存之前我们已经将文章相关数据分离到了 data.js 文件并在 post.js

1.2K30

React Router v4教程:为你 React 应用创建路由

将单应用限制为单一视图并不适用于 Facebook、Instagram 等流行社交媒体网站,这些网站现在使用 React 呈现多个视图。我们需要继续前进,学习如何在单页面应用显示多个视图。...例如我们习惯看到显示欢迎消息和相关内容主页。网站介绍详细信息可以在“关于我们”页面上找到,用户列表及其详细信息会出现在不同面上,可能还有其他各种页面包含很多不同视图。...在 React Conf 2017 演讲,他们通过展示如何将路由概念无缝地 Web 平台投射到 Native 平台,以及将 React Router 集成到 VR 并在 React Native...虽然他们谈话着眼点是围绕路由器 API 是如何“All About Components”。 在React,只涉及单个 “Html” 文件。...每当用户输入新 URL 请求时,路由不会服务器获取数据,而是为每个新 URL 请求交换不同 Component。

2K20

React?设计模式?

(当然也有专门mock服务,但是我们在做展示时,就有点大材小用了)。 所以,网上给大家找了几个比较好用免费JSON API。下面只给出链接,具体如何使用,就需要大家动动手指了。...其实,它还是有很大用处。 在 React 应用程序,通常会出现需要从后端/缓存获取数据或计算逻辑并在 React 组件上表示计算结果情况。...在这些情况下,容器和展示模式非常适用,因为它可以将组件分类为两种: 容器组件,负责数据获取或计算。 展示组件,负责在用户界面上呈现获取数据或计算值。...下面展示了,如何使用 React 实现一个简单 PostList 组件,它会后端获取 posts 列表,并将其渲染到页面上。...并且通过「发布-订阅」模式来使得React组件树某个节点能够及时准确获取到最新值。从而避免因为一个值变更,使得整个组件树重新发生渲染。

21410

【微信小程序】冒泡事件与非冒泡事件、将文章数据从业务中分离、wxml模块化

---- 文章目录 前言 冒泡事件与非冒泡事件 常见冒泡事件类型 将文章数据从业务中分离 data.js post.js 使用require引入js模块注意事项 wxml模块化 如何使用模板...上期我们实现了welcome页面跳转到page页面,本期我们先对上期内容进行一个补充知识点,也就是冒泡事件与非冒泡事件定义。...将postList数组数据整体剪切到data.js,并进行修改。 data.js 现在data.js可以看作小程序一个模块,但现在还没有办法其他文件访问这个模块。...: postList } post.js 定义好模块后,就可以在其他js引用这个模块。...注意:在输出模块时,postList是作为一个object属性赋值给module.exports,所以需要使用dataObj.postList才能获取到真正文章数据。

59220

初见next.js

layout 组件      在我们应用,我们将在各个页面上使用通用样式.为此,我们可以创建一个通用 Layout 组件并将其用于我们每个页面.      ...props 属性进行传递      动态页面      在实际应用,我们需要创建动态页面来显示动态内容.      ...>            );      }      在该页面我们看一下元素,其中 href 属性 p 文件夹页面的路径, as 是要在浏览器 URL 栏显示 URL.as...获取远程数据      实际上,我们通常需要从远程数据源获取数据.Next.js 自己有标准 API 来获取页面数据.我们通常使用异步函数 getInitialProps 来完成此操作 .这样,我们可以通过远程数据源获取数据到页面上...安装 react-markdown      npm install --save react-markdown      修改 pages/post.js      import { useRouter

5.1K00

一杯茶时间,上手 Taro 京东小程序开发

,则提示用户新帖子发布成功,并将 post 添加到 postList ,以及置空 post 内容,等待下次输入。...}; 可以看到上面我们创建了一个 Post 函数式组件,然后增加了 config 配置,在标题改为 “帖子”,接着我们使用 Taro 提供 useRouter 钩子来获取路由传递过来参数,取到参数里面的.../app.scss"; // 如果需要在 h5 环境开启 React Devtools // 取消以下注释: // if (process.env.NODE_ENV !...}; 可以看到是我们熟悉函数式组件,并且 config 我们设置了 “我标题,并且还在组件渲染了一张图片和标语,图片可以在项目中获取。...getPosts 函数,用于获取初始帖子列表,接着我们在这个函数中使用 Taro 请求 API Taro.request 来发起网络请求,并将请求到数据进行处理更新到 postList ,关于更多请求

84950

react-navigation导航器

和h5用a标签来跳转不太一样是,rn必须依赖导航器跳转。导航器也可以看成是一个普通React组件,你可以通过导航器来定义你APP导航结构。...它是Fb推荐使⽤库, 并且在React Native当前最新版本0.44将Navigator删除。react-navigation据称有原生般性能体验效果。...可能会成为未来React Native导航组件主流军 。 可以粗略地理解,navigation就是rn版router。 安装 注:19年7月到现在不到两个月,navigation有了大更新。...:SwitchNavigator用途是一次只显示⼀个⻚⾯面 你可以通过以上几种导航器来创建你APP,可以是其中一个,也可以多个组合,这个可以根据具体应 ⽤场景并结合每⼀个导航器器特性进⾏选择...getParam方法获取: {this.props.navigation.getParam('title')} 在页面定义标题 留意到以下模拟器

6.2K20

第三个页面:构建新闻详情页面

笔记内容:构建新闻详情页面 文章列表跳转到新闻详情(组件自定义属性及获取属性) 在编写文章列表跳转到新闻详情代码之前,先来修改一下之前页面,之前我们编写了两个模板文件,但是还有两个细节没有完善好...id is " + postId); }, event是事件源对象,是默认会传入参数,currentTarget是当前被触发事件目标对象,dataset是数据集对象,数据要从数据集对象获取。...---- 使用数据填充新闻详情页面 首先是postId获得,因为不同postId需要输出不同文章详情数据: 1.在post.jsnavigateTo方法url参数,加上一个id参数: onPostTap...postData = postsData.postList[postId]; this.setData({ postData }); // 从缓存获取数据,键值对形式...---- 切换文章图片 以上我们完成了简单音乐播放和暂停以及音乐图标的切换,而且也说明了coverImg引入图片只有在真机上,进入音乐界面后才能够看到,但是我们也可以将coverImg引入图片显示在文章详情

1.6K20

Taro 小程序开发大型实战(七):尝鲜微信小程序云(下篇)

处理逻辑 定义对应 reducers 文件 如此往复 可以看到我们上面的讲解顺序实际上是按照前端数据流流动来进行,我们对标上面的讲解逻辑来看一下前端数据流是如何流动组件通过对应常量发起异步请求...在 src/sagas/ 文件夹下面创建 post.js 文件,并在其中编写如下创建文章逻辑: import Taro from '@tarojs/taro' import { call, put,...在 src/api/ 文件夹下添加 post.js 文件,并在文件编写内容如下: import Taro from '@tarojs/taro' async function createPost(...打开 src/api/post.js 文件,并在其中编写内容如下: // ......打开 src/api/post.js 文件,并在其中编写内容如下: // ...

2.6K10

React-Native组件之 Navigator和NavigatorIOS

Navigator 与 NavigatorIOS 在移动开发过程,几乎所有的APP或多或少都会涉及到多个界面间切换,在React Native中有两个组件负责实现这样效果 —— Navigator...这个组件将会获取两个属性:navigator和navState代表导航组件和它状态。...常用方法 除了上面的属性之外,还有一些常用方法: push(route) 导航器跳转到一个新路由 pop()返回到上一 replace(route)替换当前路由,并立即加载新路由视图...,React Native提供了NavigationBar(类似于AndroidToolbar)。...react-navigation,一款可以替换React Native Simple Router导航器组件,使用比较简单。 附:示例代码 React Native常用第三方库

4.4K70

Taro 小程序开发大型实战(四):使用 Hooks 版 Redux 实现应用状态管理(上篇)

/user.js 和 src/reducers/post.js 中导入需要使用常量时都是 .....提示 我们将马上在之后讲解如何在组件 dispatch Action。...整合 Redux 和 React 当我们编写了 reducers 创建了 store 之后,下一步要考虑就是如何将 Redux 整合进 React,我们打开 src/app.js,对其中内容作出如下修改...•接着我们将之前 props 里面获取 nickName 和 avatar 替换成我们 Redux store 里面获取到状态,这里我们为了用户体验, taro-ui 中导出了一个 AtAvatar...•最后,在点击头像进行预览 onImageClick 方法里面,我们使用 Redux store 里面获取 avatar。

2K21
领券