脚手架
vue-cli => create-react-app(create-react-app xxx --typescript)
proxy接口代理
老版本vue-cli的代理在config下的config/proxyConfig中配置,然后再在config/index.js下的proxyTable中引入
module.exports = {
proxy: {
'/xxxx': {
target: 'http://xxx.com',
ws: true,
changeOrigin: true,
cookieDomainRewrite: {
'*' : ''
},
pathRewrite:{
'xxxx':'xx'
}
}
}
}
新版本的vue-cli将配置集成到了node_modules中,所以需要在根目录下建立vue.config.js,然后在其中添加相关字段
devServer: {
proxy: {
'/xxxx': {
target: 'http://xxx.com',
ws: true,
changeOrigin: true,
cookieDomainRewrite: {
'*' : ''
},
pathRewrite:{
'xxxx':'xx'
}
}
}
}
create-react-app(以下简称CRA...)脚手架的配置在根目录的config下,据其他博文所述,老版本的CRA(2版本之前)可以直接在package.json下配置跨域代理,新版本的则是在根目录下的config/webpackDevServer.config.js中配置proxy的相关内容和vue没啥区别,或在最下方before(app, server) 函数中,自行配置http-proxy-middleware,类似
const zpkProxy = require('http-proxy-middleware')
app.use(zpkProxy('/xxx', {
target:''
changeOrigin:true,
...
}
路由
vue
的路由是在一个单独的js文件new一个Router,通过配置routes数组进行页面的路由创建,然后在模板中配置。
export default new Router({
routes: [
{
path: '/',
name: 'xxx',
meta: {},
component: xxx // 同步引入路由所需组件
// component: () => import(xxx) // 异步引入路由所需组件
}
]
})
使用动画的话,则是用包裹router-view。 路由跳转,可以通过以下方式进行跳转:
this.$router.push({path: 'xxx', query: {xxx: xxx}})(query换params,参数会随页面刷新而丢失)
页面可以通过this.$route.query获取路由上的参数
react
的路由则是通过创建一个Routes函数,内部通过jsx的形式来构建组件
const Routes = () => (
} />
)
路由跳转可以通过以下方式进行跳转
this.props.history.push(`/course/${id}`)
路由的参数获取,可以通过以下方式获取
this.props.match.params.xxx
只有在Routes中出现的组件才能使用props获取路由中的参数,举个例子,你在首页路由下的子组件的props中找不到match字段,所以也拿不到参数
Vue中的v-if在React中如何使用
// Vue中的jsx
{this.showDivStatus &&
}
{this.showDivStatus ?
:
}
同等情况下React的jsx中
{this.state.showDivStatus && }
{this.state.showDivStatus ?
:
}
Vue中的v-for在React中如何使用
{{item.name}}
同等情况下react的jsx中
{this.state.divList.map((item,index) =>
{item.name}
)}
Vue中的methods在React中如何使用(定义和传参)
// vue中的函数可以直接写函数名
// 如果需要参数可以直接写成函数执行的形式
// vue的方法是定义在methods里的,并不涉及this的问题
export default {
data () {
return {
user: 'abc'
}
}
methods: {
a () {
console.log(this.user) // abc
}
}
}
React的jsx比较符合函数本身,通过bind方法严格返回一个函数,而不是通过直接的执行来传参
// 而react的方法是写在class中的
class Index extends React.Component {
constructor (props) {
super(props)
this.state = {
user: 'abc'
}
}
// 需要箭头函数绑定this
clickCallback = (param) => {
console.log(this.state.user, param)
}
render () {
return (
)
}
}
或者这么写
class Index extends React.Component {
constructor (props) {
super(props)
this.state = {
user: 'abc'
}
// 手动绑定this指向
this.clickCallback = this.clickCallback.bind(this);
}
clickCallback (param) {
console.log(this.state.user, param)
}
}
组件
Vue一般来说,我们都是用单独的Vue文件来作为局部组件来使用,组件调用时需要使用import引入并在components中定义,也可以使用Vue.component定义无需引入的全局组件。
React有两种组件模式:
带状态的class xxx extends React.Component
不带状态的函数组件 function xxx (props) {return(一堆jsx....)}
感觉其中最大的区别就是:
继承自React.Component的组件,可能
使用到了你写了n久Vue都也许
用不到Class,反正我写了一年多Vue只在特殊的工厂模式需求下才使用es6的类,或者为了练习Class而去写Class。
高性能高逼格的纯函数组件+ReactHooks的辅助。。。岂不美哉!
VueX和Redux
其实上面那些都是非常基础的,无非是this、es6和jsx的问题,个人感觉VueX和Redux虽然都是一个集中的状态管理器,但是用起来真的是天壤之别,先说说两者中简单易懂的Vuex
VueX
VueX的关键词有:State、getters、mutations、commit、actions、dispatch。 然后官网盗个图
这玩意咋用呢,举一个最简单的累加器的例子,vuex的所有东西都写在一个store.js里,从项目里粘出来改的,可能手抖删错了
import Vue from 'vue'
import Vuex from 'vuex'
Vue.use(Vuex)
const state = {
count: 0
}
const getters = {
getCount (state) {
return state.count
}
}
const mutations = {
addCount () {
state.count++
},
clearCount () {
state.count = 0
}
}
const store = new Vuex.Store({
state,
mutations,
getters
})
export default store
然后其他Vue文件中可以直接通过this.$store.count
。。。就能获取!反正我是不用严格模式,也不用getter【手动捂脸】 通过this.$store.commit
就能调用你在Store中定义的mutations来修改相应全局变量的状态。 mutations------commit是一对,负责异步操作 actions--------dispatch是一对,负责同步操作
个人根据官网图示悟出的最正确的使用姿势,应该是,getter拿state,mutations定义行为,actions在mutations外面套一层,也就是actions中commit对应的mutations,然后在其他Vue组件中疯狂的dispatch来触发actions,进而通过commit触发mutations,最后修改state的状态。
但是。。。我不这么用。。。
Redux
Redux脱离了React还是一个完整的包,所以用起来感觉也很神奇,总的来说,Redux的关键词有:Provider、actions、reducer、combineReducers、connect、container 官网盗个图。。。竟然没有!全是字,难怪比VueX复杂 官网的todoList的demo虽然没啥东西,但是对于初学者来说有点大,我们还是用一个累加器count的例子举例,代码是从项目里弹层提示相关代码里删改出来的,变量名和参数啥的可能会有些问题,请看官谅解,大体思路是没有问题的,具体步骤如下:
写一个action(s)
写一个reducer(s)和reducerCombiner
写一个需要Redux状态的组件counterPage
写一个容器包裹counterPage组件
在React的外层包裹一层Provider
// /src/store/actions/index.js 写一个actions
let count = 0
export const addCount = status => {
// 参数status就是dipatch调用时传递过来的参数,这里没啥用
return {
type: 'ADD_COUNT',
data: count++
}
}
/** 其他action,这里也用不到
export const clearCount = status => {
return {
type: 'CLEAR_COUNT',
data: 0
}
}**/
// /src/store/reducers/count.js 写一个reducer
const count = (state = [], action) => {
switch (action.type) {
case 'ADD_COUNT':
return action.data // 就是上方ADD_COUNT的action内count++对应的data
/**
case 'CLEAR_COUNT': // 其他action
return action.data
**/
default:
return 0
}
}
export default count
// store/reducers/index.js 写一个reducerCombiner
import { combineReducers } from 'redux'
import count from './count'
// 这里import进来的reducer的名字(count)决定了后面 容器 从state取值时使用的变量名
const xxxReducers = combineReducers({
count
})
export default xxxReducers
// 在/src/pages/counterPage.js下随便写一个组件,他的render中用到了redux中的计数
// 这里的count和addCount都需要容器来提供
render () {
return (
)
}
// 在/src/container/count.js写一个包裹counterPage.js的容器,将你原来想直接使用组件的地方都换成容器。
import { connect } from 'react-redux'
import { addCount } from '../store/actions'
import CounterPage from '../pages/counterPage'
// 这里state就是你想要的计数器的状态,初始{count:0},ownProps是counterPage的props
const mapStateToProps = (state, ownProps) => {
// 做一些你想要的处理,这里的返回值就是传递给你counterPage组件的变量
// state中的变量名取决于你combineReducers时使用的变量名
return {
count: state.count
}
}
// 这里则是定义传递给counterPage的方法,把它和dispatch关联起来
const mapDispatchToProps = (dispatch, ownProps) => {
return {
addCount: () => {
dispatch(addCount())
}
}
}
// 关联counterPage组件,把状态和方法传递进去
const CourseWithRedux = connect(
mapStateToProps,
mapDispatchToProps
)(counterPage)
export default CountWithRedux
// 最后在数据共享的外层也就是/src/index.js增加标签
import { Provider } from 'react-redux'
import { createStore } from 'redux'
import xxxReducers from './store/reducers'
let store = createStore(xxxReducers)
ReactDOM.render(
,
document.getElementById('root')
);
记得把引用过组件的地方变成容器。我是觉得用起来比VueX繁琐多了。
感觉写的不是很好,所以应该叫从Vue放弃到React放弃,致敬看到最后的你~
你可能感兴趣的:(从Vue入门到React入门)
EEUI如何修改图标
十五001
问题解决 javascript
iOS图标生成与替换1.生成图标使用在线工具:可以使用在线图标生成工具(如https://console.eeui.app/#/tools/icons)生成不同尺寸的图标。上传图片:上传一张1024x1024的PNG图片,工具会自动生成不同尺寸的图标文件。下载图标文件:下载生成的图标文件,通常会包含不同尺寸的图标资源。2.替换图标添加图标到项目:打开Xcode,选择项目中的Assets.xcass
秒懂Yarn:从安装到配置的全流程详解
洛秋_
前端开发 yarn 前端
文章目录秒懂Yarn:从安装到配置的全流程详解一、什么是Yarn?二、Yarn的优势1.速度快2.离线模式3.确定性4.更好的语义化三、安装Yarn1.通过npm安装Yarn2.通过Homebrew安装(适用于macOS)3.通过Chocolatey安装(适用于Windows)4.验证安装四、Yarn的基本命令1.初始化项目2.安装依赖3.删除依赖4.升级依赖5.安装所有依赖五、配置Yarn1.配
Axure RP从入门到精通(五十七) 灵魂提问 - 写PRD需求文档是使用Word文档还是Axure?
风流 少年
Axure RP 从入门到精通 axure
在实际工作中有些公司使用Word文档来写需求文档(一般是大公司),有些公司使用Axure来写需求文档,他们习惯在画原型的时候在旁边写需求,并用辅助线来连接需求说明和对应的功能(组件),那么我们应该如何选择使用方式???一:使用Word文档写需求文档的优劣势1.1优势方便存档,方便交接和传播(传递);方便习惯使用Word文档的技术人员;方便发邮件做报告;还对于一些有较复杂流程,需要用到各种图示的产品
从0到1掌握Flutter(三)Dart语法
微声G
从0到1掌握Flutter flutter
引言本文接上篇:从0到1掌握Flutter(二)环境搭建与认识工程Dart语言基础是Flutter开发必须掌握的核心知识。本文将讲解变量与常量的声明、Dart内置类型体系及其用法、运算符的应用场景三大模块。对于具备Java/Kotlin背景的学习者,可以通过对比学习法快速定位知识缺口,理解语法的共性。一、变量与常量1.1变量万物皆对象在Dart的类型系统中,变量本质上是指对象的引用,这一设计符合面
DeepSeek 助力 Vue3 开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_10空状态的固定表头表格
宝码香车
# DeepSeek javascript 前端 vue.js ecmascript DeepSeek
前言:哈喽,大家好,今天给大家分享一篇文章!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦目录DeepSeek助力Vue3开发:打造丝滑的表格(Table)之添加列宽调整功能,示例Table14_10空状态的固定表头表格页面效果组件代码代码测试测试代码正常跑通,附其他基本代码编写路由src\router\index.js编写展示入口s
Linux 分区扩容(根分区扩容,SWAP 分区扩容,挂载新分区为目录)
正在输入中…………
运维 存储 linux 运维 服务器
Linux分区扩容(根分区扩容,SWAP分区扩容,挂载新分区为目录)Linux系统在运行过程中,出现磁盘空间不足,需要扩容该如何处理?本文描述了常见的扩容场景,包括根分区、SWAP分区以及扩容某个目录。目录根分区扩容1.1标准分区扩容(默认)1.2LVM分区扩容SWAP分区扩容2.1创建文件作为SWAP分区(默认)2.2标准分区SWAP扩容2.3LVMSWAP扩容挂载新的磁盘到新的分区3.1将磁盘
PMP冲刺每日一题(32)答案解析
PM简读馆
PMP每日打卡 产品经理
作者简介:程序员转项目管理领域优质创作者个人邮箱:[
[email protected] ]PMP资料导航:PM菜鸟(查阅PMP大纲考点)座右铭:上善若水,水善利万物而不争。绿泡泡:PM简读馆(包含更多PM常用免费资料)目录试题1试题2试题3试题4试题5试题1标题:项目经理分析后得出结论,项目的成本绩效指数为80%,到目前为止项目的实际成本为100,000美元,但是预计到目前的成本应为120,000美
新手村:线性回归-实战-波士顿房价预测
嘉羽很烦
机器学习 线性回归 算法 回归
新手村:线性回归-实战-波士顿房价预测前置条件阅读:新手村:线性回归了解相关概念实验目的1.熟悉机器学习的一般流程2.掌握基础的数据处理方法3.理解常用的回归算法教学例子:预测房价(以波士顿房价数据集为例)本次实验,你将使用真实的波士顿房价数据集建立起一个房价预测模型,并且了解到机器学习中的若干重要概念和评价方法,请通过机器学习建立回归模型,即:Y=θ0+θ1×X1+θ2×X2+θ3×X3+⋯+θ
UE4-UE5虚幻引擎,前置学习一--Console日志输出经常崩溃,有什么好的解决办法
avi9111
每天一点u3d ue4 ue5 虚幻 日志
有些差异这么牛逼的引擎,居然有这种入门级别的问题,一触发清理,大概率(80%)会崩溃无论虚幻5还是UE4都有这个问题,挺烦人的实在忍不了了,这次,今天就想问问有什么好的处理方法么??另外下载第三方日志插件???\=================================这不是一个简单的文档分析这需要你知道Engine.dll和Project.dll的区别这需要你知道一点点游戏开发的框架好像
计算机视觉入门
109702008
人工智能 # 深度学习 计算机视觉 人工智能
计算机视觉(ComputerVision)是一门涉及使机器能够从图像或者多维数据中提取信息,解释、理解并对物体或场景进行处理的学科。以下是一个基本的计算机视觉入门学习路线,旨在为刚刚接触这一领域的学习者提供指导。1.基础知识储备数学基础:线性代数、概率论和数理统计、微积分、优化理论。编程语言:掌握至少一门编程语言,Python是目前在计算机视觉领域最流行的语言,其次是C++。2.计算机视觉基础数字
如何快速写开题报告?
我是宝库
人工智能 经验分享 学习方法 毕业论文 开题报告 毕业设计 毕设
又到了毕业季,你是不是内心已经十分捉急?开题报告还没开始写?该怎么写?写好开题报告,就是论文成功的开始!开题报告越细致,论文的写作就越有方向和思路。每个学校都会出台关于开题报告的相关要求也会给到相关模板,同学们可以自己到学校的官网下载相关模板。一般而言,开题报告包括以下六个部分的内容:1.研究背景和意义2.文献综述3.研究提纲及预期贡献4.研究进度5.拟采用的研究方法、手段及采取的措施6.可能遇见
Twilio发送短信
五彩的颜色
java spring boot spring cloud jenkins k8s docker
简介Twilio为将来的商业沟通提供强大支持,并使开发人员能够将语音、VoIP和消息传送嵌入到应用程序中。它们对基于云的全球环境中所需的所有基础结构进行虚拟化,并通过Twilio通信API平台将其公开。可轻松构建和扩展应用程序。享受现用现付定价所带来的灵活性,并从云可靠性中受益。利用Twilio语音,应用程序可以发起和接收电话呼叫。TwilioSMS使应用程序能够发送和接收文本消息。利用Twili
计算机视觉(Computer Vision, CV)的入门到实践的详细学习路线
云梦优选
计算机 数据库 大数据 计算机视觉 学习 人工智能
一、基础准备1.数学基础线性代数深入矩阵运算,理解矩阵乘法、转置、逆等基本概念。掌握特征值与特征向量的几何意义,理解其在图像压缩、特征提取中的应用。学习奇异值分解(SVD)及其在降维和数据压缩中的具体应用。概率与统计熟悉贝叶斯定理及其在分类任务中的应用,如朴素贝叶斯分类器。理解常见概率分布(如正态分布、二项分布)及其性质。学习统计推断方法,如假设检验、置信区间估计,以评估模型性能。微积分掌握梯度、
RAG技术深度解析:从基础Agent到复杂推理Deep Search的架构实践
小爷毛毛(卓寿杰)
系统架构与解决方案 搜索推荐 架构 语言模型 人工智能 自然语言处理
重磅推荐专栏:《大模型AIGC》《课程大纲》《知识星球》本专栏致力于探索和讨论当今最前沿的技术趋势和应用领域,包括但不限于ChatGPT和StableDiffusion等。我们将深入研究大型模型的开发和应用,以及与之相关的人工智能生成内容(AIGC)技术。通过深入的技术解析和实践经验分享,旨在帮助读者更好地理解和应用这些领域的最新进展一、什么是RAGAgent?1.从信息处理到智能生成在自然语言处
【2025】Electron Git Desktop 实战一(上)(架构及首页设计开发)
IsMShmily
_Electron electron git javascript
源代码仓库:Github仓库【electron_git】Commit:bb40040GithubDesktop页面分析本节目标:1、实现类似GithubDesktop的「空仓库」提示页2、添加本地仓库逻辑编写从GithubDesktop我们看到他的主要页面分为三个区域Head头部区域(操作分支)Side侧边栏区域(查看更新的文件)Main主区域(查看文件Diff内容)Tip:其实初始化的时候只有一
【解锁机器学习:探寻数学基石】
游戏乐趣
机器学习 人工智能
机器学习中的数学基础探秘在当今数字化时代,机器学习无疑是最具影响力和发展潜力的技术领域之一。从图像识别到自然语言处理,从智能推荐系统到自动驾驶,机器学习的应用无处不在,深刻地改变着我们的生活和工作方式。然而,在这看似神奇的机器学习背后,数学作为其坚实的理论基础,起着不可或缺的关键作用。毫不夸张地说,数学是打开机器学习大门的钥匙,是理解和掌握机器学习算法与模型的核心所在。想象一下,机器学习就像是一座
1.1 网络爬虫简介
lwen.steven
从头开始学Java数据采集
随着互联网的迅速发展,网络数据资源呈爆发式增长,信息需求者如何从网络中提取信息变得更加重要。如今,有效地获取网络数据资源的方式,便是网络爬虫。网络爬虫又称为网络蜘蛛或者Web信息采集器,是一种按照指定规则,自动抓取或下载网络资源的计算机程序或自动化脚本。网络爬虫狭义上的理解:利用标准网络协议(如HTTP、HTTPS等),根据网络超链接和信息检索方法(如深度优先)遍历网络数据的软件程序。网络爬虫功能
组态软件在物联网中的应用概述
by组态软件
物联网 web组态 组态 低代码 流程图
组态软件在物联网(IoT)中的应用主要体现在以下几个方面:1.设备监控与管理组态软件通过图形化界面实时监控物联网设备的状态,如温度、湿度、压力等,并支持远程控制,帮助用户及时发现并处理异常。2.数据采集与分析组态软件能够从物联网设备中采集数据,进行存储和分析,生成趋势图、报表等,辅助用户优化系统运行。3.系统集成组态软件支持多种通信协议(如MQTT、OPCUA等),能够集成不同厂商的设备,实现统一
简单以太网配置
像linux的企鹅
华为路由器 交换机学习 智能路由器 网络
displayarp//查看路由器mac地址交换机配置命令:system-view//从用户视图进入系统视图dismac-address//查看mac地址表路由器配置命令:system-view//从用户视图进入系统视图intGigabitEthernet0/0/0//进入G口0/0/0进入之后配置网关:ipaddress192.168.1.25424//为路由器设置网关还有子网掩码位数配置完成时
如何实现自动备份 MySQL 数据库:脚本编写与部署指南
*才华有限公司*
数据库 mysql
引言在远程部署的时候,数据备份是确保业务连续性和数据安全的关键步骤。对于使用MySQL数据库的系统,定期备份数据库是必不可少的。本文将详细介绍如何编写一个Bash脚本,实现自动备份MySQL数据库,并将其部署到远程服务器上。1.需求分析在开始编写脚本之前,我们需要明确以下需求:备份频率:每周二备份一次。备份文件存储:备份文件需要按日期存储,且不删除之前的备份数据。自动化运行:脚本需要通过cron任
如何进行OceanBase 运维工具的部署和表性能优化呢?
oceanbase
随着OceanBase数据库应用的日益深入,数据量不断攀升,单个表中存储数百万乃至数千万条数据的情况变得愈发普遍。因此,部署专门的运维工具、实施针对性的表性能优化策略,以及加强指标监测工作,都变得更为重要。以下为基于我们的使用场景,所采取的一些部署和优化措施分享。一、OCP部署升级1.OCP升级(1)4.2.1BP1升级到4.2.2,本来以为毫无波澜但是下载完毕一键包并完成前期准备工作启动后发现无
day5:40. 顺时针打印矩阵
追光者2020
剑指offer 技巧题 c++
问题描述:输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。样例输入:[[1,2,3,4],[5,6,7,8],[9,10,11,12]]输出:[1,2,3,4,8,12,11,10,9,5,6,7]数组的遍历顺序是右→下→左→上,定义表示x坐标与y坐标的数组,定义一个二维的vector,并且初始化为false,当矩阵中数字读过时,则标记为true,一开始从左向右读取数组matrix,
Day25:剑指 Offer 29. 顺时针打印矩阵
学而知不足~
剑指offer练习 矩阵 算法
题目输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字。代码实现模拟classSolution{publicint[]spiralOrder(int[][]matrix){if(matrix.length==0){returnnewint[]{};}intm=matrix.length;intn=matrix[0].length;int[]res=newint[m*n];intindex
IMWeb提升营Day4 | 训练题19:顺时针打印矩阵
rical730
Web开发 算法
题目描述输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下矩阵:12345678910111213141516则依次打印出数字1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10.12345678910111213141516123456789101112131415161718192021222324252627282930313233343
UDS学习计划
正当少年
UDS 学习
以下是一份详细的UDS(UnifiedDiagnosticServices,统一诊断服务)学习计划,涵盖从基础到实战的系统化学习路径,适合初学者和有一定基础的开发者。计划周期为6-8周,每周投入10-15小时。第一阶段:基础认知(1周)学习目标理解UDS的基本概念和应用场景掌握UDS协议的核心组成部分熟悉相关工具的使用学习内容UDS概述UDS的定义与作用(ISO14229标准)应用场景:ECU诊断
Ansible、Ansible Tower:操作Pan-OS与常见问题
2huxy
Ansible Ansible Tower 运维 linux 运维
Ansible、AnsibleTower:操作Pan-OS一、安装1、控制节点中pip安装依赖:Ansible可以直接pipinstallpan-pyhtonpydevicexmltodictAnsibleTower涉及到虚拟环境的问题,应该把相应的虚拟PIP库装进对应模板的虚拟环境中sudo/var/lib/awx/venv/ansible/bin/pipinstallpan-pyhton2、A
数据结构Python版---生成螺旋矩阵(Day5)
圆嘟嘟2019
数据结构Python版 python 算法 开发语言 leetcode 数据结构
文章目录1.1⭐算法原理:1.2连续数组长度1.1⭐算法原理:生成螺旋矩阵原理:通过模拟矩阵填充来解决,像蜗牛的螺旋一样,从外往里旋。1.2连续数组长度给定一个正整数n,生成一个包含1到n^2所有元素,且元素按顺时针顺序螺旋排列的正方形矩阵。示例1:输入:3输出:[[1,2,3],[8,9,4],[7,6,5]]通过模拟矩阵填充的过程来解决,使用四个变量top、bottom、left、right来
Ubuntu 20.04使用阿里源并更新glibc到2.35版本
32.768
ubuntu linux 运维
#阿里源镜像地址debhttp://mirrors.aliyun.com/ubuntu/focalmainrestricteduniversemultiversedeb-srchttp://mirrors.aliyun.com/ubuntu/focalmainrestricteduniversemultiversedebhttp://mirrors.aliyun.com/ubuntu/focal-
Java开发第一坑:记一次MySQL ON DUPLICATE KEY UPDATE影响行数异常排查:从现象到解决的全过程
猿享天开
java mysql 开发语言
记一次MySQLONDUPLICATEKEYUPDATE影响行数异常排查:从现象到解决的全过程一、问题现象:神秘的计数器异常由于学习JAVA开发时间不长,也没有进行系统性学习,由于项目需要就草草的开始了程序开发,在开发医疗影像归档系统时,归档患者影像时需要自动根据数据库操作后的返回值判断是新增插入数据,还是更新数据,但由于返回的影响行数不准确,比如插入1条新数据、更新一条数据或未变化,返回的影响行
十一、数组(1)-----定义及特点、创建及初始化、访问与遍历
圆响石
JavaSE 算法 java
(一)数组的定义及特点定义:数组是存储相同数据类型元素的有序集合,可以看成相同类型元素的集合,在内存中是一段连续的空间。通过索引访问元素,且索引从0开始。特点:1.数组中存放的元素其类型相同(可以是基本类型或对象类型)。2.数组的空间,即内存,连续分配,访问高效。3.每个空间都有自己的编号,起始位置的编号为0,即数组的下标,也叫索引。(二)数组的创建及初始化数组的创建:方式一(推荐):数据类型[]
ASM系列五 利用TreeApi 解析生成Class
lijingyao8206
ASM 字节码动态生成 ClassNode TreeAPI
前面CoreApi的介绍部分基本涵盖了ASMCore包下面的主要API及功能,其中还有一部分关于MetaData的解析和生成就不再赘述。这篇开始介绍ASM另一部分主要的Api。TreeApi。这一部分源码是关联的asm-tree-5.0.4的版本。
在介绍前,先要知道一点, Tree工程的接口基本可以完
链表树——复合数据结构应用实例
bardo
数据结构 树型结构 表结构设计 链表 菜单排序
我们清楚:数据库设计中,表结构设计的好坏,直接影响程序的复杂度。所以,本文就无限级分类(目录)树与链表的复合在表设计中的应用进行探讨。当然,什么是树,什么是链表,这里不作介绍。有兴趣可以去看相关的教材。
需求简介:
经常遇到这样的需求,我们希望能将保存在数据库中的树结构能够按确定的顺序读出来。比如,多级菜单、组织结构、商品分类。更具体的,我们希望某个二级菜单在这一级别中就是第一个。虽然它是最后
为啥要用位运算代替取模呢
chenchao051
位运算 哈希 汇编
在hash中查找key的时候,经常会发现用&取代%,先看两段代码吧,
JDK6中的HashMap中的indexFor方法:
/**
* Returns index for hash code h.
*/
static int indexFor(int h, int length) {
最近的情况
麦田的设计者
生活 感悟 计划 软考 想
今天是2015年4月27号
整理一下最近的思绪以及要完成的任务
1、最近在驾校科目二练车,每周四天,练三周。其实做什么都要用心,追求合理的途径解决。为
PHP去掉字符串中最后一个字符的方法
IT独行者
PHP 字符串
今天在PHP项目开发中遇到一个需求,去掉字符串中的最后一个字符 原字符串1,2,3,4,5,6, 去掉最后一个字符",",最终结果为1,2,3,4,5,6 代码如下:
$str = "1,2,3,4,5,6,";
$newstr = substr($str,0,strlen($str)-1);
echo $newstr;
hadoop在linux上单机安装过程
_wy_
linux hadoop
1、安装JDK
jdk版本最好是1.6以上,可以使用执行命令java -version查看当前JAVA版本号,如果报命令不存在或版本比较低,则需要安装一个高版本的JDK,并在/etc/profile的文件末尾,根据本机JDK实际的安装位置加上以下几行:
export JAVA_HOME=/usr/java/jdk1.7.0_25  
JAVA进阶----分布式事务的一种简单处理方法
无量
多系统交互 分布式 事务
每个方法都是原子操作:
提供第三方服务的系统,要同时提供执行方法和对应的回滚方法
A系统调用B,C,D系统完成分布式事务
=========执行开始========
A.aa();
try {
B.bb();
} catch(Exception e) {
A.rollbackAa();
}
try {
C.cc();
} catch(Excep
安墨移动广 告:移动DSP厚积薄发 引领未来广 告业发展命脉
矮蛋蛋
hadoop 互联网
“谁掌握了强大的DSP技术,谁将引领未来的广 告行业发展命脉。”2014年,移动广 告行业的热点非移动DSP莫属。各个圈子都在纷纷谈论,认为移动DSP是行业突破点,一时间许多移动广 告联盟风起云涌,竞相推出专属移动DSP产品。
到底什么是移动DSP呢?
DSP(Demand-SidePlatform),就是需求方平台,为解决广 告主投放的各种需求,真正实现人群定位的精准广
myelipse设置
alafqq
IP
在一个项目的完整的生命周期中,其维护费用,往往是其开发费用的数倍。因此项目的可维护性、可复用性是衡量一个项目好坏的关键。而注释则是可维护性中必不可少的一环。
注释模板导入步骤
安装方法:
打开eclipse/myeclipse
选择 window-->Preferences-->JAVA-->Code-->Code
java数组
百合不是茶
java数组
java数组的 声明 创建 初始化; java支持C语言
数组中的每个数都有唯一的一个下标
一维数组的定义 声明: int[] a = new int[3];声明数组中有三个数int[3]
int[] a 中有三个数,下标从0开始,可以同过for来遍历数组中的数
javascript读取表单数据
bijian1013
JavaScript
利用javascript读取表单数据,可以利用以下三种方法获取:
1、通过表单ID属性:var a = document.getElementByIdx_x_x("id");
2、通过表单名称属性:var b = document.getElementsByName("name");
3、直接通过表单名字获取:var c = form.content.
探索JUnit4扩展:使用Theory
bijian1013
java JUnit Theory
理论机制(Theory)
一.为什么要引用理论机制(Theory)
当今软件开发中,测试驱动开发(TDD — Test-driven development)越发流行。为什么 TDD 会如此流行呢?因为它确实拥有很多优点,它允许开发人员通过简单的例子来指定和表明他们代码的行为意图。
TDD 的优点:
&nb
[Spring Data Mongo一]Spring Mongo Template操作MongoDB
bit1129
template
什么是Spring Data Mongo
Spring Data MongoDB项目对访问MongoDB的Java客户端API进行了封装,这种封装类似于Spring封装Hibernate和JDBC而提供的HibernateTemplate和JDBCTemplate,主要能力包括
1. 封装客户端跟MongoDB的链接管理
2. 文档-对象映射,通过注解:@Document(collectio
【Kafka八】Zookeeper上关于Kafka的配置信息
bit1129
zookeeper
问题:
1. Kafka的哪些信息记录在Zookeeper中 2. Consumer Group消费的每个Partition的Offset信息存放在什么位置
3. Topic的每个Partition存放在哪个Broker上的信息存放在哪里
4. Producer跟Zookeeper究竟有没有关系?没有关系!!!
//consumers、config、brokers、cont
java OOM内存异常的四种类型及异常与解决方案
ronin47
java OOM 内存异常
OOM异常的四种类型:
一: StackOverflowError :通常因为递归函数引起(死递归,递归太深)。-Xss 128k 一般够用。
二: out Of memory: PermGen Space:通常是动态类大多,比如web 服务器自动更新部署时引起。-Xmx
java-实现链表反转-递归和非递归实现
bylijinnan
java
20120422更新:
对链表中部分节点进行反转操作,这些节点相隔k个:
0->1->2->3->4->5->6->7->8->9
k=2
8->1->6->3->4->5->2->7->0->9
注意1 3 5 7 9 位置是不变的。
解法:
将链表拆成两部分:
a.0-&
Netty源码学习-DelimiterBasedFrameDecoder
bylijinnan
java netty
看DelimiterBasedFrameDecoder的API,有举例:
接收到的ChannelBuffer如下:
+--------------+
| ABC\nDEF\r\n |
+--------------+
经过DelimiterBasedFrameDecoder(Delimiters.lineDelimiter())之后,得到:
+-----+----
linux的一些命令 -查看cc攻击-网口ip统计等
hotsunshine
linux
Linux判断CC攻击命令详解
2011年12月23日 ⁄ 安全 ⁄ 暂无评论
查看所有80端口的连接数
netstat -nat|grep -i '80'|wc -l
对连接的IP按连接数量进行排序
netstat -ntu | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -n
查看TCP连接状态
n
Spring获取SessionFactory
ctrain
sessionFactory
String sql = "select sysdate from dual";
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
String[] names = wac.getBeanDefinitionNames();
for(int i=0; i&
Hive几种导出数据方式
daizj
hive 数据导出
Hive几种导出数据方式
1.拷贝文件
如果数据文件恰好是用户需要的格式,那么只需要拷贝文件或文件夹就可以。
hadoop fs –cp source_path target_path
2.导出到本地文件系统
--不能使用insert into local directory来导出数据,会报错
--只能使用
编程之美
dcj3sjt126com
编程 PHP 重构
我个人的 PHP 编程经验中,递归调用常常与静态变量使用。静态变量的含义可以参考 PHP 手册。希望下面的代码,会更有利于对递归以及静态变量的理解
header("Content-type: text/plain");
function static_function () {
static $i = 0;
if ($i++ < 1
Android保存用户名和密码
dcj3sjt126com
android
转自:http://www.2cto.com/kf/201401/272336.html
我们不管在开发一个项目或者使用别人的项目,都有用户登录功能,为了让用户的体验效果更好,我们通常会做一个功能,叫做保存用户,这样做的目地就是为了让用户下一次再使用该程序不会重新输入用户名和密码,这里我使用3种方式来存储用户名和密码
1、通过普通 的txt文本存储
2、通过properties属性文件进行存
Oracle 复习笔记之同义词
eksliang
Oracle 同义词 Oracle synonym
转载请出自出处:http://eksliang.iteye.com/blog/2098861
1.什么是同义词
同义词是现有模式对象的一个别名。
概念性的东西,什么是模式呢?创建一个用户,就相应的创建了 一个模式。模式是指数据库对象,是对用户所创建的数据对象的总称。模式对象包括表、视图、索引、同义词、序列、过
Ajax案例
gongmeitao
Ajax jsp
数据库采用Sql Server2005
项目名称为:Ajax_Demo
1.com.demo.conn包
package com.demo.conn;
import java.sql.Connection;import java.sql.DriverManager;import java.sql.SQLException;
//获取数据库连接的类public class DBConnec
ASP.NET中Request.RawUrl、Request.Url的区别
hvt
.net Web C# asp.net hovertree
如果访问的地址是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree%3C&n=myslider#zonemenu那么Request.Url.ToString() 的值是:http://h.keleyi.com/guestbook/addmessage.aspx?key=hovertree<&
SVG 教程 (七)SVG 实例,SVG 参考手册
天梯梦
svg
SVG 实例 在线实例
下面的例子是把SVG代码直接嵌入到HTML代码中。
谷歌Chrome,火狐,Internet Explorer9,和Safari都支持。
注意:下面的例子将不会在Opera运行,即使Opera支持SVG - 它也不支持SVG在HTML代码中直接使用。 SVG 实例
SVG基本形状
一个圆
矩形
不透明矩形
一个矩形不透明2
一个带圆角矩
事务管理
luyulong
java spring 编程 事务
事物管理
spring事物的好处
为不同的事物API提供了一致的编程模型
支持声明式事务管理
提供比大多数事务API更简单更易于使用的编程式事务管理API
整合spring的各种数据访问抽象
TransactionDefinition
定义了事务策略
int getIsolationLevel()得到当前事务的隔离级别
READ_COMMITTED
基础数据结构和算法十一:Red-black binary search tree
sunwinner
Algorithm Red-black
The insertion algorithm for 2-3 trees just described is not difficult to understand; now, we will see that it is also not difficult to implement. We will consider a simple representation known
centos同步时间
stunizhengjia
linux 集群同步时间
做了集群,时间的同步就显得非常必要了。 以下是查到的如何做时间同步。 在CentOS 5不再区分客户端和服务器,只要配置了NTP,它就会提供NTP服务。 1)确认已经ntp程序包: # yum install ntp 2)配置时间源(默认就行,不需要修改) # vi /etc/ntp.conf server pool.ntp.o
ITeye 9月技术图书有奖试读获奖名单公布
ITeye管理员
ITeye
ITeye携手博文视点举办的9月技术图书有奖试读活动已圆满结束,非常感谢广大用户对本次活动的关注与参与。 9月试读活动回顾:http://webmaster.iteye.com/blog/2118112本次技术图书试读活动的优秀奖获奖名单及相应作品如下(优秀文章有很多,但名额有限,没获奖并不代表不优秀):
《NFC:Arduino、Andro