Code Monkey home page Code Monkey logo

my-cnode's Introduction

my-cnode

项目描述

使用React技术写自己的cnode社区

体验地址

技术栈

React + ES6 + React-Route4 + ant

感谢

感谢cnode社区提供的API

使用

//克隆项目
git clone https://github.com/tian-cai/my-cnode
//安装
npm install
//本地运行
npm run start
//打包
npm run build

my-cnode's People

Contributors

tian-cai avatar

Stargazers

Jack He avatar  avatar 夏天 avatar 李明敏 avatar 李文富 avatar

Watchers

James Cloos avatar

Forkers

zuo-xin

my-cnode's Issues

Review 4

  • component 如果使用异步按需加载,首屏体验会不会更好?
  • 路由的配置数据如果能独立到一个文件里去管理,结构会更清晰,可读性会更好,比如此处用一个统一的方法,将路由配置转成 <Route ...>?

my-cnode/src/App.jsx

Lines 112 to 126 in e9a758d

<Route exact path="/" component={TopicList} />
<Route path="/topic/:id" component={TopicDetail} />
<Route path="/login" component={Login} />
<Route
path="/user/message"
render={props => (
<MessageList
changeMsgCount={this.getNotReadMsgCount}
{...props}
/>
)}
/>
<Route path="/user/collect" component={Collect} />
<Route path="/user/publish" component={PublishTopic} />
<Route path="/user/:username" component={UserDetail} />

Review 2

  • 不需要修改的数据,使用 const
  • isLogin、 loginName、 userAva 可以由一个统一的 service 提供,比如 util.getCurrentUserInfo()
    • userAva 的命名风格与前两者不一致,userAvatar 是不是更好?

my-cnode/src/App.jsx

Lines 67 to 72 in e9a758d

let isLogin = util.isLogin()
let loginName, userAva
if (isLogin) {
loginName = util.getLoginName()
userAva = util.getUserAva()
}

Review 3

  • 新建一个组件,将 msgCount 的逻辑封装进去,此处只负责引入这个组件,数据应该是组件内部自己管理
  • 下面的 MessageList 也是一样,业务逻辑在 MessageList 组件内部封装掉,减少耦合

    my-cnode/src/App.jsx

    Lines 97 to 102 in e9a758d

    <Link to={"/user/message"} className="float-right mr20">
    我的消息<Badge
    style={{ top: "-12px" }}
    count={this.state.msgCount}
    />
    </Link>

Review 1

  • 依赖项最好按类别分堆,比如外部的、全局的、子模块的、样式的
  • import 区之后加一空行

my-cnode/src/App.jsx

Lines 1 to 20 in e9a758d

import React from "react"
import axios from "axios"
import { Route, Switch, Link } from "react-router-dom"
import "./css/reset.css"
import "./css/common.css"
import "./css/app.css"
import "./css/iconfont.css"
import cnode from "./assets/cnodejs.svg"
import TopicList from "./modules/Home/TopicList.jsx"
import TopicDetail from "./modules/Home/TopicDetail.jsx"
import UserDetail from "./modules/User/UserDetail.jsx"
import Login from "./modules/Login/Login.jsx"
import MessageList from "./modules/User/MessageList.jsx"
import Collect from "./modules/User/Collect.jsx"
import PublishTopic from "./modules/User/PublishTopic.jsx"
import BackUp from "./modules/Common/BackUp.jsx"
import util from "./modules/util/util.js"
import service from "./modules/service.js"
import { Row, Col, Layout, message, Badge } from "antd"
const { Header, Footer } = Layout

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.