脚手架
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入门)
哈尔滨工业大学DeepSeek公开课人工智能:大模型原理 技术与应用-从GPT到DeepSeek|附视频下载方法
你觉得205
人工智能 机器学习 大数据 ai 知识图谱 python 运维
导读INTRODUCTION今天继续哈尔滨工业大学车万翔教授带来了一场主题为“DeepSeek技术前沿与应用”的报告。本报告深入探讨了大语言模型在自然语言处理(NLP)领域的核心地位及其发展历程,从基础概念出发,延伸至语言模型在机器翻译、拼音输入法、语音识别等任务中的关键作用。强调了语言模型不仅辅助其他NLP任务,本身也蕴含大量知识,如地理信息、语义理解和推理能力。随着技术的发展,尤其是trans
CPP编译与链接过程
阿斯顿的风格
c++ 开发语言 ubuntu linux bash 编译 汇编
1.概述在C++中,从源代码(.cpp文件)到最终可执行程序,需要经历以下四个主要阶段:预处理(Preprocessing)编译(Compilation)汇编(Assembly)链接(Linking)2.预处理预处理阶段是编译流程的第一步,主要处理以#开头的指令,包括宏定义、文件包含以及条件编译等。2.1文件包含(#include)工作原理:当预处理器遇到#include指令时,会在文件系统中查找
基于 MySQL 和 Spring Boot 的在线论坛管理系统设计与实现
城南|阿洋-计算机从小白到大神
mysql spring boot 数据库
markdownCopy✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN[新星计划]导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、pyhton、机器学习技术领域和毕业项目实战✌哈喽兄弟们,好久不见哦~最近整理了一下之前写过的一些小项目/毕业设计。发现还是有很多存货的,想一想既然放在电脑里面也吃灰,那么还不如分享出去,没准还可以帮助到
LeetCode剑指offer题目记录3
t.y.Tang
LeetCode记录 学语言 c++ leetcode 哈希算法
leetcode刷题开始啦,每天记录几道题.目录剑指offer05.替换空格题目描述思路pythonC++剑指offer06.从尾到头打印链表题目描述思路1python思路2pythonC++剑指offer05.替换空格题目描述让我们实现一个函数,把字符串s中的每个空格替换为%20.思路这个题目我只能想到遍历,在空间控制上应该有原地修改的办法会省一些.python如果用python,那直接用spl
.net 4.0 webServices 的使用,从前端到后端,代码超全。
静静香甜
.net 前端 后端 c#
1、创建webServices:创建之后会生成两个文件,分别是:SecurityWebService.asmx,SecurityWebService.asmx.csSecurityWebService.asmx代码:SecurityWebService.asmx.cs代码:usingNewtonsoft.Json;usingNewtonsoft.Json.Linq;usingSystem;usin
【分治法】最接近点对问题 C++(附代码分析及实例)
haaaaaaarry
算法设计与分析 算法
问题描述给定平面上n个点,找其中的一对点,使得在n个点组成的所有点对中,该点对间的距离最小问题分析先考虑一下一维情况下,取中间某个点m,将所有点划分为两个集合,递归的找出左右集合的最接近点对,最后再和最靠近点m的左右两点间的距离作比较,最小的就是整个点对中最接近的现在将一维的情况扩展到二维,二维比一维复杂的地方在于每个点都有两个坐标,我们用一条直线l将平面上的所有点同样分成两个集合,再递归的去两个
数字签名与数字证书
TABE_
计算机网络 数字签名 数字证书
这里写目录标题数字签名数字证书数字证书的原理数字证书的特点如何验证证书机构的公钥不是伪造的数字签名数字签名是非对称密钥加密技术与数字摘要技术的应用,数字签名就是用加密算法加密报文文本的摘要(摘要通过hash函数得到)而生成的内容。发送报文时,发送方用一个哈希函数从报文文本中生成报文摘要,然后用发送方的私钥对这个摘要进行加密生成数字签名,之后将数字签名和报文一起发送给接收方,即数字证书。接收方首先用
零基础入门机器学习:用Scikit-learn实现鸢尾花分类
藍海琴泉
机器学习 scikit-learn 分类
适合人群:机器学习新手|数据分析爱好者|需快速展示案例的学生一、引言:为什么要学这个案例?目的:明确机器学习解决什么问题,建立学习信心。机器学习定义:让计算机从数据中自动学习规律(如分类鸢尾花品种)。为什么选鸢尾花数据集:数据量小、特征明确,适合教学演示。Scikit-learn优势:提供现成算法和工具,无需从头写数学公式。二、环境准备:5分钟快速上手目的:搭建可运行的代码环境,避免卡在工具安装环
HTML+CSS案例展示(CSS3D效果旋转相册)
hacalili
html css 前端 css3
参考来源:黑马程序员pink老师前端入门教程,零基础必看的h5(html5)+css3+移动端前端视频教程_哔哩哔哩_bilibili效果展示:总结:transform:translate(x,y)rotate(180deg)scale()...顺序对最后的效果有影响,需要根据需求安排位移和其他属性的顺序;实现暂停动画效果:animation-play-state:paused;经常和鼠标经过等其
linux脚本怎么访问http,如何使用现有的tcp连接从bash脚本访问http服务器?
玲珑阁玉韦
linux脚本怎么访问http
在bashshellscipt中,我使用几个命令行工具(wget,curl,httpie)来测试我的http服务器.当使用例如curl调用GET请求,我看到tcp连接打开到我的服务器并在http通信完成后立即关闭.$curlhttp://10.5.1.1/favicon.ico-o/dev/null为了更好地测试我的服务器的保持活动行为,我想在多个http请求/响应周期中保持tcp连接打开.我可以
PTA:数组区间差集A-B
悦悦子a啊
C语言PTA习题 算法 数据结构
输入一个整数数组(题目保证数组中的整数不重复),然后输入两个闭区间,区间A[L1,R1]和区间B[L2,R2],L1,R1代表区间A的左/右边界的数组下标;L2,R2代表区间B的左/右边界的数组下标(下标从0开始,且题目保证下标均在有效范围内不会越界)。输出由这两个区间形成的差集(A-B)的数值。输入格式:一个整数n(n不大于20),然后输入n个整数。最后输入4个整数,分别代表区间A和区间B的左边
新需求如何实现
火火PM打怪中
考公笔记 笔记
作为产品经理,面对新需求时,我会结合产品管理和项目管理的双重逻辑,采用以下结构化流程,确保需求既能满足用户价值,又能高效落地:一、需求澄清与价值验证(NPDP核心逻辑)需求背景挖掘与需求提出方(用户/业务/领导)深度沟通,明确:痛点场景:需求解决的具体问题(例如“政务数据共享接口调用失败率高”)。期望目标:量化成功标准(如“接口成功率从70%提升至95%”)。工具:5W1H分析法、用户故事地图(U
【机器学习】朴素贝叶斯入门:从零到垃圾邮件过滤实战
吴师兄大模型
0基础实现机器学习入门到精通 机器学习 人工智能 朴素贝叶斯 深度学习 pytorch sklearn 开发语言
Langchain系列文章目录01-玩转LangChain:从模型调用到Prompt模板与输出解析的完整指南02-玩转LangChainMemory模块:四种记忆类型详解及应用场景全覆盖03-全面掌握LangChain:从核心链条构建到动态任务分配的实战指南04-玩转LangChain:从文档加载到高效问答系统构建的全程实战05-玩转LangChain:深度评估问答系统的三种高效方法(示例生成、手
解码软件需求的三个维度:从满足基础到创造惊喜
技术管理修行
项目管理 信息系统项目管理师 需求分析 质量功能部署 需求管理 常规需求 期望需求 意外需求 用户体验
在软件开发的世界里,用户需求就像一张复杂的地图,指引着产品前进的方向。但并非所有需求都能带来同样的价值——有些是产品生存的“氧气”,有些是吸引用户的“磁石”,还有一些则是让人眼前一亮的“魔法”。如何区分它们?质量功能展开(QFD)提出的常规需求、期望需求、意外需求分类法,为团队提供了一把解开需求迷局的钥匙。1.常规需求:没有它,产品活不下去想象一下,你下载了一款外卖App,却发现无法下单支付;或者
conda将python低版本环境升级到高版本
dkgee
conda python 开发语言
conda将python低版本环境3.7.16升级到高版本3.81.激活你的Conda环境2.升级Python版本3.验证升级4.处理依赖问题5.测试环境注意事项可以将Conda环境中的Python版本从3.7.16升级到3.8。以下是具体步骤:1.激活你的Conda环境首先,你需要激活你想要升级Python版本的环境。假设你的环境名为myenv,你可以使用以下命令激活它:condaactivat
Xilinx系ZYNQ学习笔记(二)ZYNQ入门及点亮LED灯
贾saisai
FPGA学习 学习 笔记 fpga开发
系列文章目录文章目录系列文章目录前言简单介绍简称xc7z020型号FPGAZYNQ实操通用IO点亮LED灯硬件逻辑基础前言简单入门一下ZYNQ是何种架构,如何编程,至于深入了解应该要分开深入学习Linux和FPGA简单介绍其基本架构都是在同一个硅片上集成FPGA和CPU,并通过高速、高带宽的互联架构连接起来。ARM的顺序控制、丰富外设,开源驱动、FPGA的并行运算、高速接口、灵活定制、数字之王的特
DeepSeek 如何处理多模态数据(如文本、图像、视频)?
借雨醉东风
人工智能
关注我,持续分享逻辑思维&管理思维&面试题;可提供大厂面试辅导、及定制化求职/在职/管理/架构辅导;推荐专栏《10天学会使用asp.net编程AI大模型》,目前已完成所有内容。一顿烧烤不到的费用,让人能紧跟时代的浪潮。从普通网站,到公众号、小程序,再到AI大模型网站。干货满满。学成后可接项目赚外快,绝对划算。不仅学会如何编程,还将学会如何将AI技术应用到实际问题中,为您的职业生涯增添一笔宝贵的财富
Python知识分享第十四天
闵少搞AI
python 开发语言
“”"1.面向对象相关概述概述面向对象是一种编程思想强调的是以对象为基础完成的各种操作它是基于面向过程的扩展Python中是同时支持面向对象和面向过程这两种编程思想的思想特点更符合人们的思考习惯把复杂的问题简单化把人们(程序员)从执行者变成了指挥者2.面向对象三大特征介绍封装继承多态封装概述封装就是隐藏对象的属性和实现细节仅对外提供公共的访问方式举例:插板电脑手机好处提高代码的安全性弊端代码量增加
《基于自适应正负样本对比学习的特征提取框架》-核心公式提炼简洁版 2022年neural networks
阳光明媚大男孩
学习 深度学习 人工智能 论文笔记
论文源地址以下是从文档中提取的关于“基于对比学习的特征提取框架(CL-FEFA)”中正负样本对比学习实现的技术细节,包括详细的数学公式、特征提取过程以及特征表示方式的说明。1.正负样本的定义与构造在CL-FEFA框架中,正负样本的定义是动态且自适应的,基于特征提取的结果,而不是预先固定的。这种自适应性是CL-FEFA区别于传统对比学习(如SimCLR、SupCon)的一个关键点。定义方式:指示矩阵
Vue 中的日期格式化实践:从原生 Date 到可视化展示!!!
小丁学Java
产品资质管理系统 vue.js 前端 javascript ts
Vue中的日期格式化实践:从原生Date到可视化展示在数据可视化场景中,日期时间的格式化显示是一个高频需求。本文将以一个邀请码关系树组件为例,深入解析Vue中日期格式化的核心方法、性能优化和最佳实践,并配合Mermaid流程图直观展示处理流程!一、️核心方法:原生Date对象处理代码实现privateformatDate(dateString:string|null):string{if(!dat
如何安全删除MySQL字段?从原理到实战的保姆级指南!
小丁学Java
产品资质管理系统 安全 mysql 数据库
从MyISAM到InnoDB:解锁MySQL在线删除字段的终极指南真实案例:一次失败的DDL操作引发的思考场景复现:某业务表invite_codes需要删除invitor字段,执行以下命令时触发报错:ALTERTABLEinvite_codesDROPCOLUMNinvitor,ALGORITHM=INPLACE;--报错信息:ALGORITHM=INPLACEisnotsupportedfort
Spring Data JPA 的分页魔法:Pageable vs PageRequest,谁才是真正的“分页王”?✨
小丁学Java
Spring Data JPA 数据库
SpringDataJPA的分页魔法:PageablevsPageRequest,谁才是真正的“分页王”?嘿,各位技术探险家!今天我们要解锁SpringDataJPA的分页秘籍,聊聊Pageable和PageRequest这对“分页双人组”的爱恨情仇!从它们的关系到使用场景,再到一个让我抓狂的参数陷阱,这篇博客带你从迷雾走向光明,还有流程图助阵,快跟我一起跳进这个技术冒险吧!第一幕:分页的“魔法钥
【广度优先搜索】1995: 细胞 cell
呱呱呱~
宽度优先 算法
题目描述【问题描述】一矩形阵列由数字0到9组成,数字1到9代表细胞,细胞的定义为沿细胞数字上下左右还是细胞数字为同一细胞,求所给矩形阵列的细胞个数。如下阵列有4个细胞。0234500067103456050020456006710000000089Input【输入格式】整数m、n(m行n列)矩阵【输入样例】4100234500067103456050020456006710000000089Out
蓝桥杯备赛Day12 动态规划1基础
爱coding的橙子
蓝桥杯 蓝桥杯 动态规划 c++ 算法
动态规划动态规划基础动态规划将复杂问题分解成很多重叠的子问题,再通过子问题的解得到整个问题的解分析步骤:确定状态:dp[i][j]=val,“到第i个为止,xx为j的方案数/最小代价/最大价值”状态转移方程:确定最终状态要求:(1)最优子结构(2)无后效性:已经求解的子问题,不会再受到后续决策的影响。(3)子问题重叠,将子问题的解存储下来两种思路:(1)按题目线性DP数字三角形学习:(1)将整个大
Python 爬虫实战:从知乎盐选专栏,爬取优质内容付费数据
西攻城狮北
python 爬虫 开发语言 实战案例 知乎
目录一、前言二、准备篇2.1确定目标2.2工具与库2.3法律与道德声明三、实战篇3.1分析知乎盐选专栏页面3.2模拟登录3.3获取文章列表3.4爬取更多文章数据3.5数据存储四、分析篇4.1数据清洗4.2热门文章分析4.3收藏数分析4.4评论数分析五、总结与展望六、注意事项一、前言知乎盐选专栏作为知乎平台上的优质内容付费板块,汇聚了众多创作者的高质量文章。了解这些文章的付费数据,如点赞数、收藏数、
Emacs和SML的安装和使用
weixin_42281226
emacs 编辑器
环境:Mac电脑参考文章:编程语言软件安装和使用:SML和Emacs1.Emacs安装和基本使用从官网EmacsForMacOSX下载最新版本,正常安装即可。Emacs使用组合键进行操作(组合键比较难记,可以先尝试通用键)。最重要的操作:(C表示Control)C-xC-c:退出EmacsC-g:取消当前操作C-xC-f:打开文件或新建文件C-xC-s:保存文C-xC-w:等同于saveasC-s
新手如何使用 Milvus
巴依老爷coder
数据库 milvus 向量数据库 数据库
一文带你入门Milvus:详细指南新手如何使用Milvus:详细指南一、Milvus简介主要特点应用领域二、安装Milvus安装DockerCompose基于DockerCompose安装Milvus服务端安装attu-可视化界面工具三、快速入门安装PythonSDK连接数据库方式1方式2(方式1的封装)数据库操作核心概念集合操作数据操作插入数据精准查询数据-get条件查询数据-query查询数据
nginx-部署Python网站项目
skyQAQLinux
python linux nginx 服务器
一、部署Python网站项目实验要求配置Nginx使其可以将动态访问转交给uWSGI安装Python工具及依赖1)拷贝软件到proxy主机[root@server1~]#scp-r/linux-soft/s2/wk/python/192.168.99.5:/root2)安装python依赖软件[root@proxy~]#yum-yinstallgccmakepython3python3-devel
使用Docker部署Nacosv2.1.1
九思x
docker 容器 运维
第一步:拉取镜像dockerpullnacos/nacos-server:v2.1.1作用:从DockerHub拉取Nacos2.1.1官方镜像。第二步:启动容器dockerrun-d\-eMODE=standalone\#单机模式运行-p8848:8848\#HTTPAPI/UI端口-p9848:9848\#gRPC通信端口(客户端-服务端)-p9849:9849\#gRPC通信端口(集群间通信
《Solidity智能合约开发:从零到一实战指南》大纲
白马区块Crypto100
智能合约
为什么要学Solidity智能合约?在过去几年,区块链从一种“投机工具”进化为一种全新的技术基础设施。无论是NFT、DeFi、GameFi还是DAO,它们的核心都是——智能合约。✨什么是智能合约?智能合约是运行在区块链上的“自动执行程序”,不用依赖中介或第三方,信任直接写进代码里。而Solidity是智能合约开发的“通用语言”。为什么要做这个专栏?做区块链项目的人越来越多,但真正从零系统学习Sol
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