首先確認(rèn)重啟之前舊進(jìn)程已經(jīng)結(jié)束。
默認(rèn)情況下,TCP 端口從關(guān)閉到重新開啟需要等待一段時間(TIME_WAIT),在這一時間段,端口不能使用。
詳情請查閱 TCP 標(biāo)準(zhǔn)文檔 https://tools.ietf.org/html/r...
以 Windows 操作系統(tǒng)為例,你可以通過修改 TcpTimedWaitDelay 注冊表值來降低等待時間,它的默認(rèn)值是 240 秒(4 分鐘),注冊表路徑 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters 。
先把react學(xué)明白,再來用typescript寫react
import * as React from 'react'
import * as Reactdom from 'react-dom'
interface Person {
firstName: string;
middleName?: string;
lastName: string;
}
class Greeter extends React.Component<{person:Person}> {
fullName: string
constructor (props) {
super(props)
this.setFullName(props.person)
}
setFullName(person:Person) {
this.fullName = `${person.firstName}·${person.lastName}`
}
sayName = ():string => this.fullName
render () {
return (
<div>{this.sayName()}</div>
)
}
}
const jor:Person = {
firstName: 'michale',
lastName: 'jordan',
}
Reactdom.render(<Greeter person={jor} />, document.getElementById('#app') as HTMLElement)angular2以后就沒有用過了,下面的說明可以參考一下:
1:解決上面的修改請求中出現(xiàn)的跨源錯誤:我使用的是springboot 2.*添加了一個跨域配置,如果使用HTTP.OPTION請求返回200說明配置成功了
@Configuration
public class AppConfiguration {
@Bean
public FilterRegistrationBean corsFilter() {
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
CorsConfiguration config = new CorsConfiguration();
config.setAllowCredentials(false);
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
config.addAllowedMethod("*");
source.registerCorsConfiguration("/**", config);
FilterRegistrationBean bean = new FilterRegistrationBean(new CorsFilter(source));
bean.setOrder(0);
return bean;
}
}
2和3. 太復(fù)雜的還是用post或者遵循rest,如果一定要用get發(fā)送一個對象,需要用JSON轉(zhuǎn)化成字符串,但是真的不夠優(yōu)雅。
import 'echarts/theme/dark';
另外,echart 的 npm包只有這六種主題可選
可能是你把刷新的代碼放OnShow里了,上傳圖片回來會觸發(fā)OnShow的。
const view = name => import('@/views/${name}\') 改為 const view = name => () => import('@/views/${name}')
先看看狀態(tài)碼吧
$response->getStatusCode();
正常的 $response->getBody() 返回的 stream 對象
input元素 和display:inline-block同行的baseline的問題,可以給input加上vertical-align: top;來對齊
得把localhost換成vagrant的ip吧
表達(dá)式"s"的類型是const char[],表達(dá)式 'a'的類型是char。
數(shù)組是不能進(jìn)行內(nèi)置加法運算的。所以const char []會被轉(zhuǎn)換成const char *,這里的運算就變成了"指針+整型"(char是一種整型)。輸出空行的運行結(jié)果實際上是數(shù)組越界引起的。
String literal
Narrow multibyte string literal. The type of an unprefixed string literal is const char[]
Additive operators
addition. For the built-in operator, lhs and rhs must be one of the following: Both have arithmetic or unscoped enumeration type. In this case, the usual arithmetic conversions are performed on both operands and determine the type of the result. One is a pointer to complete object type, the other has integral or unscoped enumeration type. In this case, the result type has the type of the pointer
Array-to-pointer decay
There is an implicit conversion from lvalues and rvalues of array type to rvalues of pointer type: it constructs a pointer to the first element of an array. This conversion is used whenever arrays appear in context where arrays are not expected, but pointers are.
flex-direction: row 應(yīng)該是父容器設(shè)置的樣式把。建議看一下這篇文章一勞永逸flex布局
Array.prototype.reduce 了解一下。
array.reduce((resp, obj)=> {
var originObj = resp.find(item => item.key === obj.key);
if (originObj) {
originObj.value+= obj.value;
} else {
resp.push(obj)
}
return resp;
}, [])用 data['nav'+n].length
我以前做微信公眾號做開發(fā),遇到下載文件的問題,不知和你的是不是同一個問題。
用java寫的下載,設(shè)置了contenttype為application/x-msdownload,電腦、安卓的下載都沒問題。
用蘋果的瀏覽器就不行了,后來百度了一下,是contenttype問題,改成application/octet-stream就可以了
后來把程序作了更改,針對不同的瀏覽器,設(shè)置不同的contenttype。
String contentType = "application/x-msdownload";
response.setContentType(contentType);謝邀,我說一下我的認(rèn)識:
@Column設(shè)置了not null ,當(dāng)你持久化這個對象的時候,發(fā)現(xiàn)這個設(shè)置了not null屬性的字段為空,會拋異常,
當(dāng)然如果你不設(shè)置,到了數(shù)據(jù)庫,數(shù)據(jù)庫發(fā)現(xiàn)這個字段設(shè)置了not null屬性的字段為空,也會拋異常,那區(qū)別是什么呢?
個人認(rèn)為,在對象上設(shè)置了not null,那么就在應(yīng)用程序級別就校驗了這個字段,如果你不在對象設(shè)置not null,那么就需要去鏈接數(shù)據(jù)庫,在數(shù)據(jù)庫的層面才校驗這個字段,這是一個效率問題,多了一個數(shù)據(jù)庫的連接過程,數(shù)據(jù)庫的連接還是很有開銷的。
以哪個為準(zhǔn)? 以實際業(yè)務(wù)為準(zhǔn)!this指向
僅供參考
<template>
<div :class="className" :style="{height:height,width:width}"></div>
</template>
<script>
import echarts from "echarts";
import { debounce } from "@/utils";
export default {
props: {
className: {
type: String,
default: "chart"
},
width: {
type: String,
default: "100%"
},
height: {
type: String,
default: "280px"
},
// 圖例標(biāo)簽
legendData: {
type: Array
},
// 圖表數(shù)據(jù)
series: {
type: Array
},
// 標(biāo)題
title: {
type: String,
default: ""
}
},
data() {
return {
chart: null
};
},
watch: {
// 監(jiān)聽標(biāo)題改變
title(val) {
this.reDraw();
},
// 監(jiān)聽數(shù)據(jù)改變
series(val) {
this.reDraw();
},
// 監(jiān)聽圖例改變
legendData(val) {
this.reDraw();
}
},
mounted() {
this.initChart();
this.__resizeHanlder = debounce(() => {
if (this.chart) {
this.chart.resize();
}
}, 100);
window.addEventListener("resize", this.__resizeHanlder);
},
beforeDestroy() {
if (!this.chart) {
return;
}
window.removeEventListener("resize", this.__resizeHanlder);
this.chart.dispose();
this.chart = null;
},
methods: {
initChart() {
this.chart = echarts.init(this.$el, "macarons");
this.chart.setOption({
title: {
text: this.title,
left: "center",
bottom: 0,
textStyle: {
color: "black",
fontSize: 14
}
},
labelLine: {
normal: {
smooth: 0.2,
length: 0,
length2: 0
}
},
tooltip: {
trigger: "item",
formatter: "{a} <br/> : {c} (cqdtdgtli%)"
},
legend: {
left: "center",
bottom: 40,
textStyle: {
color: "#999",
fontSize: 12
},
data: this.legendData
},
calculable: true,
series: this.series
});
},
// 重新繪制
reDraw() {
if (!this.chart) {
return;
}
window.removeEventListener("resize", this.__resizeHanlder);
this.chart.dispose();
this.chart = null;
this.initChart();
}
}
};
</script>
<style lang="scss" scoped>
</style>
export function debounce(func, wait, immediate) {
let timeout, args, context, timestamp, result
const later = function () {
// 據(jù)上一次觸發(fā)時間間隔
const last = +new Date() - timestamp
// 上次被包裝函數(shù)被調(diào)用時間間隔last小于設(shè)定時間間隔wait
if (last < wait && last > 0) {
timeout = setTimeout(later, wait - last)
} else {
timeout = null
// 如果設(shè)定為immediate===true,因為開始邊界已經(jīng)調(diào)用過了此處無需調(diào)用
if (!immediate) {
result = func.apply(context, args)
if (!timeout) context = args = null
}
}
}這個問題沒有描述清楚,我理解如下:在父組件created中將數(shù)據(jù)存入$store,然后在子組件中這個數(shù)據(jù)渲染到模板中?
解決方式如下:
如果$store中存入的數(shù)據(jù)是dashbord,子組件用到的數(shù)據(jù)名稱為dataList,并且使用computed
computed: {
dataList() {
return this.$store.getters.dashbord
}
}Promise.all
或者
const fetchRes=[];
for(let i=0;i<20;++i){
fetchRes.push(fetch(...));
}
for(let i=0;i<20;++i){
await fetRes[i];
}北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達(dá)內(nèi)教育集團成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學(xué)校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進(jìn)“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔(dān)任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術(shù)顧問,美國Dachieve 系統(tǒng)架構(gòu)師,美國AngelEngineers Inc. 系統(tǒng)架構(gòu)師。