謂詞函數(shù),見(jiàn)https://flow.org/en/docs/type...
如果你是移動(dòng)端的話(huà),應(yīng)該是fixed定位的問(wèn)題。通過(guò)監(jiān)控獲取焦點(diǎn)改變定位absolute,失去焦點(diǎn)的時(shí)候再fixed回來(lái)就可以了。桌面端咱沒(méi)遇到過(guò)這個(gè)問(wèn)題。
1、定義路由的時(shí)候可以配置 meta 字段,在beforeEach勾函數(shù)進(jìn)行權(quán)限過(guò)濾。
2、登錄后后端返回一個(gè)標(biāo)識(shí)(token),所有請(qǐng)求都帶上token。如果對(duì)不上則返回403,然后進(jìn)行跳轉(zhuǎn)到登錄頁(yè)!
不過(guò)用a跳轉(zhuǎn)的路由沒(méi)有找到比較好的方法,只能在后端判斷一個(gè)用來(lái)記錄是否登錄的一個(gè)標(biāo)識(shí)是否存在,來(lái)進(jìn)行權(quán)限控制。
需要第三方庫(kù),參考markdown-it的用法
App.vue的router-view標(biāo)簽就是他們的父組件,你可以把數(shù)據(jù)存在那邊然后prop隨意給你的a,b組件
windows全局安裝cross-env
用于切換ENV,linux,macOS無(wú)需安裝
在package.json的“scripts”根據(jù)需要自己增加環(huán)境
eg:
"newenv": "cross-env NODE_ENV=newenv node app.js",
之后復(fù)制config/index.js里面的任意一個(gè)配置根據(jù)需要修改
基本上就差不多了
key綁定v-for對(duì)象本身會(huì)編譯報(bào)錯(cuò),我后來(lái)綁定了item._ob_.dep.id,就解決了所有問(wèn)題
html被緩存 手動(dòng)刷新 阿里云什么的都提供手動(dòng)刷新功能的
MyISAM這個(gè)引擎是專(zhuān)門(mén)為大量讀的場(chǎng)景而做的優(yōu)化, 很少寫(xiě),甚至沒(méi)有寫(xiě)最好了。如用做CMS存儲(chǔ)引擎。
嚴(yán)格來(lái)說(shuō)MyISAM引擎也并不是沒(méi)有事務(wù)管理。只是他的事務(wù)管理僅限于單表行記錄。
如果需要事物管理,用于類(lèi)似比如交易場(chǎng)景,用這個(gè)引擎的話(huà),就必須手工處理事物相關(guān)的操作,比如完整性一致性。
在這個(gè)場(chǎng)景下用InnoDB是更好的選擇。
一般表示這個(gè)參數(shù)可有可無(wú),不是必傳的。
var reg = /\[([^\]]+)\]\([^)]+\)([^\(\[]*)/g;
var item;
while(item = reg.exec(str)){
console.log(item)
}
store里的state初始值里沒(méi)有那些屬性所以報(bào)undefined,在computed里 判斷下underfined時(shí) return 空數(shù)組
comptued:{
swiper(){
const { productsdata }= this.store.state;
return productsdata ?你的代碼 :【】;
}
}
大致這樣 手機(jī)
你那個(gè)state.detail是哪里來(lái)的
package.json 有問(wèn)題 仔細(xì)閱讀第一句報(bào)錯(cuò)
redis的k=>v存儲(chǔ)結(jié)構(gòu)中的v要求是一個(gè)字符串。所以你可以像樓上說(shuō)的序列化或者生成一個(gè)json字符串。redis是沒(méi)有辦法直接存放數(shù)組的。
這不是cols的問(wèn)題,是你沒(méi)設(shè)置每個(gè)item的高度,文本有兩行的時(shí)候高度多了,把底下的元素?cái)D走了
ori是原始文件的意思,依賴(lài)實(shí)際路徑才能打開(kāi),所以可以看到query里面有dir_path這個(gè)參數(shù)。
估計(jì)是加載出的ori文件保存的是base64之類(lèi)的編碼,頁(yè)面上再進(jìn)行解碼渲染。
Echarts 貌似沒(méi)這樣的配置項(xiàng)。
我寫(xiě)了個(gè)另類(lèi)的方法可以試試
// 鼠標(biāo)退出
myChart.on('mouseout', function (params) {
setBrush(params.name)
});
// 設(shè)置豎線(xiàn)
function setBrush(focus) {
myChart.dispatchAction({
type: 'brush',
areas: [
{
brushType: 'lineX',
coordRange: [focus, focus],
xAxisIndex: 0
}
]
});
}
完整實(shí)例代碼:
var upColor = '#00da3c';
var downColor = '#ec0000';
function splitData(rawData) {
var categoryData = [];
var values = [];
var volumes = [];
for (var i = 0; i < rawData.length; i++) {
categoryData.push(rawData[i].splice(0, 1)[0]);
values.push(rawData[i]);
volumes.push([i, rawData[i][4], rawData[i][0] > rawData[i][1] ? 1 : -1]);
}
return {
categoryData: categoryData,
values: values,
volumes: volumes
};
}
function calculateMA(dayCount, data) {
var result = [];
for (var i = 0, len = data.values.length; i < len; i++) {
if (i < dayCount) {
result.push('-');
continue;
}
var sum = 0;
for (var j = 0; j < dayCount; j++) {
sum += data.values[i - j][1];
}
result.push(+(sum / dayCount).toFixed(3));
}
return result;
}
$.get('data/asset/data/stock-DJI.json', function (rawData) {
var data = splitData(rawData);
myChart.setOption(option = {
backgroundColor: '#fff',
animation: false,
legend: {
bottom: 10,
left: 'center',
data: ['Dow-Jones index', 'MA5', 'MA10', 'MA20', 'MA30']
},
tooltip: {
trigger: 'axis',
// backgroundColor: 'rgba(245, 245, 245, 0.8)',
borderWidth: 1,
borderColor: '#ccc',
padding: 10,
textStyle: {
color: '#000'
},
// extraCssText: 'width: 170px'
},
axisPointer: {
link: {xAxisIndex: 'all'},
label: {
backgroundColor: '#777'
}
},
toolbox: {
feature: {
dataZoom: {
yAxisIndex: false
},
brush: {
type: ['lineX', 'clear']
}
}
},
brush: {
xAxisIndex: 'all',
brushLink: 'all',
outOfBrush: {
colorAlpha: 1
}
},
visualMap: {
show: false,
seriesIndex: 5,
dimension: 2,
pieces: [{
value: 1,
color: downColor
}, {
value: -1,
color: upColor
}]
},
grid: [
{
left: '10%',
right: '8%',
height: '50%'
},
{
left: '10%',
right: '8%',
top: '63%',
height: '16%'
}
],
xAxis: [
{
type: 'category',
data: data.categoryData,
scale: true,
boundaryGap : false,
axisLine: {onZero: false},
splitLine: {show: false},
splitNumber: 20,
min: 'dataMin',
max: 'dataMax',
axisPointer: {
z: 100
}
},
{
type: 'category',
gridIndex: 1,
data: data.categoryData,
scale: true,
boundaryGap : false,
axisLine: {onZero: false},
axisTick: {show: false},
splitLine: {show: false},
axisLabel: {show: false},
splitNumber: 20,
min: 'dataMin',
max: 'dataMax'
// axisPointer: {
// label: {
// formatter: function (params) {
// var seriesValue = (params.seriesData[0] || {}).value;
// return params.value
// + (seriesValue != null
// ? '\n' + echarts.format.addCommas(seriesValue)
// : ''
// );
// }
// }
// }
}
],
yAxis: [
{
scale: true,
splitArea: {
show: true
}
},
{
scale: true,
gridIndex: 1,
splitNumber: 2,
axisLabel: {show: false},
axisLine: {show: false},
axisTick: {show: false},
splitLine: {show: false}
}
],
dataZoom: [
{
type: 'inside',
xAxisIndex: [0, 1],
start: 98,
end: 100
},
{
show: true,
xAxisIndex: [0, 1],
type: 'slider',
top: '85%',
start: 98,
end: 100
}
],
series: [
{
name: 'Dow-Jones index',
type: 'candlestick',
data: data.values,
itemStyle: {
normal: {
color: upColor,
color0: downColor,
borderColor: null,
borderColor0: null
}
},
},
{
name: 'MA5',
type: 'line',
data: calculateMA(5, data),
smooth: true,
lineStyle: {
normal: {opacity: 0.5}
}
},
{
name: 'MA10',
type: 'line',
data: calculateMA(10, data),
smooth: true,
lineStyle: {
normal: {opacity: 0.5}
}
},
{
name: 'MA20',
type: 'line',
data: calculateMA(20, data),
smooth: true,
lineStyle: {
normal: {opacity: 0.5}
}
},
{
name: 'MA30',
type: 'line',
data: calculateMA(30, data),
smooth: true,
lineStyle: {
normal: {opacity: 0.5}
}
},
{
name: 'Volume',
type: 'bar',
xAxisIndex: 1,
yAxisIndex: 1,
data: data.volumes
}
]
}, true);
// 鼠標(biāo)退出
myChart.on('mouseout', function (params) {
setBrush(params.name)
});
// 設(shè)置豎線(xiàn)
function setBrush(focus) {
myChart.dispatchAction({
type: 'brush',
areas: [
{
brushType: 'lineX',
coordRange: [focus, focus],
xAxisIndex: 0
}
]
});
}
});
實(shí)際使用中,這兩種設(shè)計(jì)都有。
1.不用冗余字段
供銷(xiāo)表只存物料表主鍵(一般是外鍵約束或自己寫(xiě)邏輯管理),這種方式每次顯示供銷(xiāo)信息的時(shí)候都要另外對(duì)物料表進(jìn)行一次查詢(xún)。
2.使用冗余字段
在供銷(xiāo)表也存部分物料信息,這樣查詢(xún)供銷(xiāo)表可以一次獲得所有信息,減少查詢(xún)次數(shù)。但是,需要維護(hù)數(shù)據(jù)一致性,比如物料表的某項(xiàng)信息更改了,這邊也一樣要更改。
建議按自己的需求選擇,大多數(shù)情況下,一般系統(tǒng)壓力不大,選第一種,開(kāi)發(fā)起來(lái)也方便。除非對(duì)供銷(xiāo)表的查詢(xún)壓力特別大,慎重選擇第二種。
第一種情況,如果性能要求不高,可以選擇直接用外鍵約束,開(kāi)發(fā)更簡(jiǎn)單。如果性能有要求,可以把約束放在程序邏輯里,比如:如果物料信息不多,也不經(jīng)常更改,可以一次性把所有信息讀入內(nèi)存(或redis等緩存),查詢(xún)/插入供銷(xiāo)信息的時(shí)候直接從緩存里讀/驗(yàn)證。
你這個(gè)問(wèn)題解決了嗎?
我也遇到這個(gè)問(wèn)題,去 GitHub 的 issues 里面也沒(méi)找到類(lèi)似的問(wèn)題,懷疑是新版本更新的 bug
^[\u4E00-\u9FA5]+$
北大青鳥(niǎo)APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國(guó)IT技能型緊缺人才,是大數(shù)據(jù)專(zhuān)業(yè)的國(guó)家
北大青鳥(niǎo)中博軟件學(xué)院創(chuàng)立于2003年,作為華東區(qū)著名互聯(lián)網(wǎng)學(xué)院和江蘇省首批服務(wù)外包人才培訓(xùn)基地,中博成功培育了近30000名軟件工程師走向高薪崗位,合作企業(yè)超4
中公教育集團(tuán)創(chuàng)建于1999年,經(jīng)過(guò)二十年潛心發(fā)展,已由一家北大畢業(yè)生自主創(chuàng)業(yè)的信息技術(shù)與教育服務(wù)機(jī)構(gòu),發(fā)展為教育服務(wù)業(yè)的綜合性企業(yè)集團(tuán),成為集合面授教學(xué)培訓(xùn)、網(wǎng)
達(dá)內(nèi)教育集團(tuán)成立于2002年,是一家由留學(xué)海歸創(chuàng)辦的高端職業(yè)教育培訓(xùn)機(jī)構(gòu),是中國(guó)一站式人才培養(yǎng)平臺(tái)、一站式人才輸送平臺(tái)。2014年4月3日在美國(guó)成功上市,融資1
曾工作于聯(lián)想擔(dān)任系統(tǒng)開(kāi)發(fā)工程師,曾在博彥科技股份有限公司擔(dān)任項(xiàng)目經(jīng)理從事移動(dòng)互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍(lán)懿科技有限責(zé)任公司從事總經(jīng)理職務(wù)負(fù)責(zé)iOS教學(xué)及管理工作。
浪潮集團(tuán)項(xiàng)目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺(tái)面向?qū)ο箝_(kāi)發(fā)經(jīng)驗(yàn),技術(shù)功底深厚。 授課風(fēng)格 授課風(fēng)格清新自然、條理清晰、主次分明、重點(diǎn)難點(diǎn)突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫(kù),具有快速界面開(kāi)發(fā)的能力,對(duì)瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁(yè)制作和網(wǎng)頁(yè)游戲開(kāi)發(fā)。
具有10 年的Java 企業(yè)應(yīng)用開(kāi)發(fā)經(jīng)驗(yàn)。曾經(jīng)歷任德國(guó)Software AG 技術(shù)顧問(wèn),美國(guó)Dachieve 系統(tǒng)架構(gòu)師,美國(guó)AngelEngineers Inc. 系統(tǒng)架構(gòu)師。