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

浙江省建设厅网站电视台网站如何做新闻报道

浙江省建设厅网站,电视台网站如何做新闻报道,哈尔滨网站建设价格,学院网站建设招标书typescriptreactantd基础环境搭建#xff08;包含样式定制#xff09; tsconfig.json 配置 // 具体配置可以看上面的链接 这里module moduleResolution的配置都会影响到antd的显示 // allowSyntheticDefaultImports 是antd官网给的配置 必须加上 {compilerOptionsreactantd基础环境搭建包含样式定制 tsconfig.json 配置 // 具体配置可以看上面的链接 这里module moduleResolution的配置都会影响到antd的显示 // allowSyntheticDefaultImports 是antd官网给的配置 必须加上 {compilerOptions: {outDir: ./dist/,sourceMap: false,noImplicitAny: false,module: es6,target: es5,jsx: preserve,moduleResolution: node,forceConsistentCasingInFileNames: false,allowJs: true,allowSyntheticDefaultImports: true,lib: [es5, dom,dom.iterable,es2015]},include: [./src/**/*] } package.json 配置// 其中很多配置是用来做antd样式定制的 // concurrently 是用来将命令连接起来执行的 Run multiple commands concurrently {name: power3,version: 1.0.0,description: typescript react for power3,main: index.js,scripts: {build: webpack --progress --colors,start: concurrently \node ./server/server.js\ \ npm run dev \,dev: webpack-dev-server --progress --colors -p -d},author: ,license: ISC,dependencies: {antd: ^2.13.6,css-loader: ^0.28.7,immutable: ^3.8.2,md5: ^2.2.1,react: ^15.5.4,react-dom: ^15.5.4,react-hot-loader: ^3.1.1,react-router: ^4.2.0,react-router-dom: ^4.2.2},devDependencies: {types/node: ^8.0.34,types/react: ^16.0.10,types/react-dom: ^16.0.1,types/react-router: ^4.0.15,types/react-router-dom: ^4.0.8,awesome-typescript-loader: ^3.2.3,babel-core: ^6.26.0,babel-loader: ^7.1.2,babel-plugin-import: ^1.6.2,babel-preset-env: ^1.6.1,babel-preset-react: ^6.24.1,babel-preset-stage-0: ^6.24.1,concurrently: ^3.4.0,extract-text-webpack-plugin: ^2.1.0,html-webpack-plugin: ^2.30.1,less: ^2.7.2,less-loader: ^4.0.5,less-vars-to-js: ^1.2.0,source-map-loader: ^0.2.2,style-loader: ^0.19.0,typescript: ^2.5.3,url-loader: ^0.5.8,webpack: ^2.3.3,webpack-dev-server: ^2.4.2,webpack-hot-middleware: ^2.20.0} }routes.tsx页面该页面主要用来配置路由 指定登录页面推荐使用react-router-dom 里面的各种接口直接继承感觉很方便 /*** 路由写到此处 页面一般会有层级关系 此处json对象是按照业务写成层级关系* 第一种做法是 处理成 平级的路由* 第二种是 根据业务的层级关系渲染出符合业务的相应导航* 此处两种都导出 然后在index.tsx中可以两种都试一下*/import {RouteProps} from react-router-domimport Apple from ./components/fruits/Apple import Banana from ./components/fruits/bananaimport Cabbage from ./components/vegetables/cabbage import Radish from ./components/vegetables/radishinterface PowerRouteProps extends RouteProps{name:string; }export const _routes[{id:fruits,name:水果,routes:[{name:苹果,path:/apple,component:Apple},{name:香蕉,path:/banana,component:Banana}]},{id:vegetables,name:蔬菜,routes:[{name:白菜,path:/cabbage,component:Cabbage},{name:萝卜,path:/radish,component:Radish}]} ]; // 此处变量我之前使用 routes 命名 结果在index.tsx引入时(import {routes} from ./routes) 直接报错 // 注意导出变量名和文件名不能一样 export const maproutes _routes.reduce((ary:PowerRouteProps[],cur:any){return ary.concat(cur.routes||cur) },[]).filter(xx.path x.path!); 简单的业务组件(只为了说明)其他的组件可以在github上看 // ./components/vegetables/cabbage import * as React from reactexport default class Cabbage extends React.Component{render(){return (pYou need to eat cabbage/p)} } 入口文件index.tsx此处写了两种导航 一种有submenu 一种是使用plain数据直接将所有路由列出 import * as React from react import * as ReactDOM from react-dom import {HashRouter, Route, Switch, Link, BrowserRouter} from react-router-dom // 提供antd的本地语言支持 import {LocaleProvider, Menu} from antd const MenuItem Menu.Item; const SubMenu Menu.SubMenu;import {maproutes,_routes} from ./routes // plain 路由 class Navigation extends React.Component {render() {return (Menu{maproutes.map(route {return (MenuItem key{route.path}Link to{route.path} key{route-link-${route.path}}{route.name}/Link/MenuItem)})}/Menu)} } // 有层级关系的路由 class Navigations extends React.Component {render() {return (Menu style{{width:200}} modeinline{_routes.map(routes{return (SubMenu key{routes.id} title{routes.name}{routes.routes.map(route{return (MenuItem key{route-${route.path}}Link to{route.path} key{route-link-${route.path}}{route.name}/Link/MenuItem)})}/SubMenu)})}/Menu)} }class NotFoundView extends React.Component {render() {return (div classNamehttp-404h2 classNametext-info功能尚未开发完毕/h2h3 classNametext-dangerPage not found/h3/div);} }const Router () (BrowserRouterSwitch{maproutes.map(route {// return Route path{route.path} key{route-path-${route.path}} location{route.location} component{route.component}/return Route path{route.path} key{route-${route.path}} component{route.component}/})}Route path/ exact component{Navigations}/Route component{NotFoundView}//Switch/BrowserRouter )ReactDOM.render(Router/, document.getElementById(app)); 样式定制使用社区提供的方法创建.babelrc文件 在终端(ctrl)中输入 type null.babelrc .babelrc文件 plugins的配置是为了让antd的样式生效 {presets: [[env],stage-0,react],plugins: [react-hot-loader/babel,[import, { libraryName: antd,style: true}]]} 最后一步 webpack.config.js文件编写const webpack require(webpack); const ExtractTextPlugin require(extract-text-webpack-plugin); const HtmlWebpackPlugin require(html-webpack-plugin); const path require(path); const fs require(fs); const lessToJs require(less-vars-to-js);// 获取自己定义的要覆盖antd默认样式的文件 const themeVariables lessToJs(fs.readFileSync(path.join(__dirname, ./src/assets/style/themes.less), utf8));module.exports {entry: ./src/index.tsx,output: {filename: bundle.js,path: __dirname /dist},// Enable sourcemaps for debugging webpacks output.devtool: cheap-moudle-source-map,resolve: {// Add .ts and .tsx as resolvable extensions.extensions: [.ts, .tsx, .js, .json]},devServer: {port: 8003,hot: true,// historyApiFallback: true,historyApiFallback: {index: /react.min.js},contentBase: path.resolve(__dirname, dist),publicPath: /},module: {rules: [// All files with a .ts or .tsx extension will be handled by// awesome-typescript-loader.{test: /\.(tsx|ts)?$/,use: [{loader: react-hot-loader/webpack}, {loader: babel-loader}, {loader: awesome-typescript-loader}]},// All output .js files will have any sourcemaps re-processed by// source-map-loader.{enforce: pre,test: /\.js$/,loader: babel-loader,exclude: /node_modules/}, {test: /\.less$/,use: [{loader: style-loader}, {loader: css-loader}, {loader: less-loader,options: {modifyVars: themeVariables}}]}, {test: /\.css$/,use: ExtractTextPlugin.extract({fallback: style-loader, use: css-loader, publicPath: /})}, {test: /\.(png|jpg|jpeg|gif|svg)$/,loader: url-loader?limit8192name[name].[ext]publicPath}]},// When importing a module whose path matches one of the following, just assume// a corresponding global variable exists and use that instead. This is// important because it allows us to avoid bundling all of our dependencies,// which allows browsers to cache those libraries between builds.externals: {// react: React,// react-dom: ReactDOM},plugins: [new HtmlWebpackPlugin({template: ./src/index.html,title: hello tsreact,inject: false,minify: {removeComments: true,collapseWhitespace: true},chunksSortMode: dependency}),new ExtractTextPlugin({filename: [name].css, allChunks: true}),new webpack.HotModuleReplacementPlugin()] };// 此处是借鉴同事的 啊哈哈哈 const os require(os); console.log(############################################################################); console.log(## os: ${os.type()} ${os.arch()} ${os.release()}); console.log(## ram: ${ (os.freemem() / 1024 / 1024 / 1024) 1? (os.freemem() / 1024 / 1024).toFixed(0) MB: (os.freemem() / 1024 / 1024 / 1024).toFixed(2) GB}); console.log(## time: ${new Date()}); console.log(############################################################################); 项目地址
http://wiki.neutronadmin.com/news/151286/

相关文章:

  • 网站横幅广告怎么做网站首页设计素材
  • 恋爱ppt模板免费下载网站网页界面设计要中重点掌握
  • 佛山做网站哪家好做一般的公司门户网站投资额
  • 网站优化优化怎么做江苏个人网站备案
  • 如何做公司网站百度推广wordpress调用页面列表
  • 谷歌网站收录提交入口中国互联网站建设中心建站中心
  • 阜城网站建设公司seo发帖网站
  • 建设网站需要什么人员百度收录网站方法
  • 合肥做企业网站的网络公司展示型网站 数据库
  • 网站的ftp地址是什么制作简历的免费网站
  • 网站域名怎么取无锡画室网站建设
  • 哪些网站可以做直播小程序外包公司哪家好
  • php婚庆网站源码软件开发学什么专业好
  • 哪里有免费的网站模板下载 迅雷下载 迅雷下载软件如何向百度提交网站地图
  • 网站编程软件有哪些做网站用什么开发好
  • 湘潭网站建设出色磐石网络网站会员系统方案
  • 微信商城网站方案网站仿制
  • 济南行知网站建设做响应式网站最大宽度
  • 网站平台建设服务承诺书黄山旅游攻略必去景点
  • 网站开发人员职责网站建设的市场定位
  • 360网站托管西安网络科技公司
  • 网站根目录表示在线医疗 网站建设
  • 小企业网站免费建设湛江做网站开发
  • 做片头 网站wordpress如何去除分类
  • 做一个响应式网站价格婚庆租车
  • 洛阳洛龙区网站建设推广手段和渠道有哪些
  • 武强营销型网站建设费用沈阳行业网站建设
  • 湛江cms建站wordpress的自定义菜单图标
  • 个人网站不备案wordpress网站部署
  • 一 网站建设的目的与意义新型互联网项目代理