学习React的时候,跟着教程做的一个简单的新闻站点,使用了Ant Design React组件库,适配移动和PC端,最后发布在leanCloud上。
地址: http://reactnews.leanapp.cn
最近一直在开发国网招投标项目,把我这辈子的班都加了。。。。。。
Artifical Dog
学习React的时候,跟着教程做的一个简单的新闻站点,使用了Ant Design React组件库,适配移动和PC端,最后发布在leanCloud上。
地址: http://reactnews.leanapp.cn
最近一直在开发国网招投标项目,把我这辈子的班都加了。。。。。。
一个基于Java的半自动化持久层框架。MyBatis不会为开发者自动生成SQL执行,而是需要开发人员自己写SQL,然后通过映射配置文件,将返回返回结果映射到指定的POJO。
1 | <configuration> |
创建数据库表对应的Java类,此处省略
1 | <mapper namespace="people" > |
1 | <mapper namespace="people" > |
不需要把所有字段都映射,可以只映射一部分,主键字段必须用id元素指定
‘#{}‘语法用于插入动态数据,数据来源于调用此语句时传入的参数,参数类型由parameterType属性决定
1 | <mappers> |
1 | private SqlSessionFactory sessionFactory; |
1 | 这里执行Sql有两种方式: |
1 | if |
1 | <select id="queryByCondition" parameterType="com.icss.mybatis.pojo.Student" resultMap="BaseResultMap"> |
1 | <select id="queryByCondition2" parameterType="com.icss.mybatis.pojo.Student" resultMap="BaseResultMap"> |
1 | <select id="queryByCondition3" parameterType="com.icss.mybatis.pojo.Student" resultMap="BaseResultMap"> |
1 | <!-- 动态SQL:传入Array数组 --> |
1 | <!-- 动态SQL:trim标签 --> |
1 | <!-- 动态SQL:set更新 --> |
css扩展语言,兼容css,因此在less文件里即可使用扩展的特性也可使用标准css
1 | @color:red |
1 | .border-color(@color){ |
使用:
1 | .header{ |
1 | .border{ |
其他属性集合内部使用:
1 | #menu{ |
标准css写法
1 | #header{ |
less的写法
1 | #header{ |
任何数值,颜色和变量都可以进行运算
1 | @base:5%; |
less中变量的作用域,首先会在局部查找,如果没有再去父作用域查找
1 | @var:red |
1 | @import "library.less"; |
less提供了许多的用于颜色转换,字符串处理,运算等的函数。
1 | @base:0.5; |
Webpack 是javascript应用的模块打包器(module bundler)。可以通过配置文件分析项目的结构,找到所有依赖,资源后进行打包输出供浏览器使用。
Webpack主要有四大核心概念:
webpack打包资源的入口文件,webpack.config.js 配置文件中配置entry属性
module.exports = {
entry: './path/to/my/entry/file.js'
};
打包后的资源的存放位置,配置output属性
var path = require('path');
module.exports = {
entry: './path/to/my/entry/file.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
}
};
通过调用外部脚本或工具,对各种格式的文件进行处理打包
test:需要被处理的文件
use:loader的名称,调用处理
var path = require('path');
const config = {
entry: './path/to/my/entry/file.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
},
module: {
rules: [
{test: /\.(js|jsx)$/, use: 'babel-loader'}
]
}
};
module.exports = config;
插件是用来拓展Webpack功能的,它们会在整个构建过程中生效,执行相关的任务。
const HtmlWebpackPlugin = require('html-webpack-plugin'); //installed via npm
const webpack = require('webpack'); //to access built-in plugins
const path = require('path');
const config = {
entry: './path/to/my/entry/file.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
},
module: {
rules: [
{test: /\.(js|jsx)$/, use: 'babel-loader'}
]
},
plugins: [
new webpack.optimize.UglifyJsPlugin(),
new HtmlWebpackPlugin({template: './src/index.html'})
]
};
module.exports = config;
###使用webpack构建本地服务器
Webpack提供一个可选的本地开发服务器,这个本地服务器基于node.js构建,可以实现更改代码后浏览器自动刷新,
首先得安装组件:
npm install --save-dev webpack-dev-server
然后配置
var path = require('path');
const config = {
entry: './path/to/my/entry/file.js',
output: {
path: path.resolve(__dirname, 'dist'),
filename: 'my-first-webpack.bundle.js'
},
module: {
rules: [
{test: /\.(js|jsx)$/, use: 'babel-loader'}
]
}
devServer: {
contentBase: "./public",//本地服务器所加载的页面所在的目录
colors: true,//终端中输出结果为彩色
historyApiFallback: true,//不跳转
inline: true//实时刷新
}
};
module.exports = config;
开发过程中发现对React Native生命周期的理解还不够完整,导致渲染的时候性能出现问题,所以写了个例子观察了一下。
1 | /** |
1 | /** |
1 | 第一次加载: |