Vue 是 MVVM 框架,在所有的 MVVM 框架當中,我們都應(yīng)當忽略 DOM 結(jié)構(gòu),想辦法用抽象數(shù)據(jù)的方式去操作。
當你脫開 DOM 的限制,從數(shù)據(jù)的方向看過去的時候,就沒什么復(fù)雜的了。
list[n].isSelect
router 里有個 render 屬性,不知道能不能解決你的問題。
import { Route, Redirect } from 'react-router'
<Route exact path="/" render={() => (
loggedIn ? (
<Redirect to="/dashboard"/>
) : (
<PublicHomePage/>
)
)}/>
然后官網(wǎng)有個這樣的 demo
加一個flag:false標記,只要某一項數(shù)據(jù)發(fā)生變化 flag=true.僅當flag=true的時候才可以進行保存。
flag=false時按鈕置灰或者點擊進行提示
TabNavigator已經(jīng)被遺棄了,使用createBottomTabNavigator或者createMaterialTopTabNavigator,對應(yīng)的標簽欄位置。
你數(shù)據(jù)庫和程序是部署在一起的嗎?如果是,其實直接都是localhost都是可以,都是指向的是自己本機。但是用127.0.0.1更好
文章緊接著不是列了一堆情況???
https://www.w3.org/TR/CSS2/bo...
問題已解決。是學(xué)校網(wǎng)絡(luò)管理員調(diào)整防火墻策略導(dǎo)致
問題出在你的ThinkPHP版本上,官方的5.0版本的擴展庫版本號都是1.*,2.0版本均為ThinkPHP5.1版本專用。
先更新你的ThinkPHP版本,再重新composer安裝topthink/think-testing。
stylus引用全局變量可以修改build/utils.js文件
stylus: generateLoaders('stylus',{import:[path.resolve('./src/shared/shared.styl')]}),
js公共文件不知道你是要做些什么,如果要共享變量的話,建議使用vuex。如果只是需要在vue加載前執(zhí)行一些代碼,可以再main.js里引入
this,就在里面找?。?/li>
this調(diào)用,肯定要綁定到原型鏈上,main.js 綁定,Vue.prototype.moment = moment
this.moment調(diào)用不是有min-width 和max-width嗎
或者用媒體查詢
是不是默認樣式?jīng)]有被重置導(dǎo)致的?
#include <stdio.h>
#include <stdlib.h>
#define LIST_INIT_SIZE 100
#define LISTINCREMENT 10
#define OK 0
#define error -1
#define OVERFLOW -2
typedef int ElemType;
typedef struct _SqList
{
ElemType *elem;
int length; //表長度
int listsize; //當前分配的存儲容量
}SqList,*pSqList;
//增加存儲空間容量
int addcapacity(SqList *sqlist)
{
ElemType *newbase; //分配一個新的基址
newbase = (ElemType *)malloc((sqlist->listsize + LISTINCREMENT) * sizeof(ElemType));
if (newbase == NULL)
exit(OVERFLOW);
sqlist->elem = newbase;
sqlist->listsize += LISTINCREMENT;
return OK;
}
//初始化順序表
int InitList_sq(SqList *sqlist)
{
if (sqlist == NULL)
return error;
//給線性表分配初始容量
sqlist->elem = (ElemType *)malloc(LIST_INIT_SIZE * sizeof(ElemType));
if (!sqlist->elem)
exit(OVERFLOW);
sqlist->length = 0;
sqlist->listsize = LIST_INIT_SIZE;
return OK;
}
//在表的第i個位置插入新元素newelem
int ListInsert(SqList *sqlist, int i, ElemType newelem)
{
if (sqlist == NULL || i<1 || i>sqlist->length + 1)
{
return error;
}
if (sqlist->length > sqlist->listsize) //檢查線性表是否已滿,如果滿了就擴充空間容量
{
if (addcapacity(sqlist) != OK)
return OVERFLOW;
}
//將第i個元素以及第i個元素后面的元素后移
for (int j = sqlist->length; j >= i; j--)
sqlist->elem[j] = sqlist->elem[j - 1];
sqlist->elem[i - 1] = newelem;
//TODO
// sqlist->elem++;
sqlist->length ++;
return OK;
}
//順性表輸出
void Print_list(SqList *sqlist)
{
int i;
for (i = 0; i < sqlist->length; i++)
printf("%d ", sqlist->elem[i]);
printf("\n");
}
int main()
{
SqList L;
InitList_sq(&L);
for (int i = 0; i < 10; i++) //將0-9插入順序表
{
int result = ListInsert(&L, i + 1, i);
printf("%d",result);
}
Print_list(&L);
return 0;
}
請看TODO部分
interface只是提供聲明,描述你的對象大致長什么樣,不能實例化
class就是描述你對象的樣子
constructor(
public id: number,
public name: string) { }
會自動聲明類屬性id和name,并在構(gòu)造函數(shù)中自動賦值
你這是正則寫錯了,'/src="(.+.(png|jpg))"+?/'其中只有第一個,也就是外面的捕獲組使用了非貪婪模式,里面的'.+'沒使用非貪婪模式,改成'.+?'應(yīng)該就可以了。(這個點不睡也是沒誰了。。)
1.請確認后臺是不是所有的參數(shù)都接收不到
2.如果其他參數(shù)都能接收不到,只有時間接收不到,那是時間的問題,這里的格式是字符串,看看是不是需要時間戳格式
其實可以每個軟件用一個容器運行的, 然后用 link 的方式鏈接起來使用, 都打包放一起我個人感覺不好, "不可插拔" 打包的方式就跟使用一大個虛擬系統(tǒng)沒有區(qū)別了, 而且也并不好維護
就比如我在學(xué)習(xí)的時候做的是 nginx 是一個容器, 然后可以啟用, mysql 又是一個容器, 啟動和停止都可以單獨操作, 這樣每個的配置文件也可以分別放在相應(yīng)宿主機的文件夾位置做映射, 配置都可以在不啟動 docker 的時候進行, 確實很多教程都是打包的方式,我也不知道為什么
應(yīng)該是./install-dependencies.sh
或者sh install-dependencies.sh
你不加./的話,shell會去$PATH中找這個命令,而當前目錄不在$PATH下。加上./則會是執(zhí)行當前目錄下的腳本
先把視頻停了再試試
之前提問并沒有指出是什么所謂同源事件 故而現(xiàn)在更新一波
其實也沒有什么難度,看了你的demo,無非是一些事件注冊,好消息是我剛才順手寫了個vue-highchart里使用的例子,先放效果給你看吧
其實,最重要的是你忘記框架或者庫的存在,一切從js的層面去看它
以下是你評論里貼的例子的截圖
可以看到就是獲取自身chart對象以及dom 然后得到其它chart對象以及dom 然后開始事件注冊
所以vue里面我們也這樣做不就好了?
<template>
<div>
<highcharts style="height:200px;width:500px;" :options="createOption(chartData.chart1)" ref="c1"></highcharts>
<highcharts style="height:200px;width:500px;" :options="createOption(chartData.chart2)" ref="c2"></highcharts>
<highcharts style="height:200px;width:500px;" :options="createOption(chartData.chart3)" ref="c3"></highcharts>
</div>
</template>
<script>
import { offset } from "@/js/utils";
export default {
name: "test",
data() {
return {
chartData: {
chart1: [["1月", 10], ["2月", 12], ["3月", 22]],
chart2: [["1月", 44], ["2月", 30], ["3月", 22]],
chart3: [["1月", 10], ["2月", 30], ["3月", 8]],
},
};
},
methods: {
createOption(data) {
return {
series: [{ data }],
};
},
},
mounted() {
const { c1, c2, c3 } = this.$refs;
const chart1 = c1.chart;
const chart2 = c2.chart;
const chart3 = c3.chart;
// 你看chart對象是不是得到了
const allChart = [chart1, chart2, chart3];
// 定義一個獲取其它兄弟表集合的方法
allChart.getOther = function(one) {
return allChart.filter(c => c !== one);
};
// 循環(huán)進行事件綁定
allChart.forEach(chart => {
// 你看自身chart的dom是不是得到了
const container = chart.container;
if (container instanceof Element) {
container.addEventListener("mousemove", function(e) {
var sourceXAxis = chart.xAxis[0];
var extremes = sourceXAxis.getExtremes();
var targetChartContainerList = allChart.getOther(chart);
targetChartContainerList.forEach((ct, index) => {
var targetChart = ct;
var targetDom = ct.container;
var sourceOffset = offset(container);
var targetOffset = offset(targetDom);
var targetE = {};
for (var i in e) {
targetE[i] = e[i];
}
targetE.pageX =
e.pageX + targetOffset.left - sourceOffset.left;
targetE.pageY =
e.pageY + targetOffset.top - sourceOffset.top;
var targetEl =
targetDom.querySelector(
"rect.highcharts-background"
) ||
targetDom.querySelector("path.highcharts-tracker");
targetE.target = targetE.srcElement = targetE.fromElement = targetE.toElement = targetEl;
targetE.delegateTarget = targetE.currentTarget = targetDom;
targetE.originalEvent = targetE;
if (targetChart && targetChart.pointer) {
targetChart.pointer.onContainerMouseMove(targetE);
}
if (targetChart && targetChart.scroller) {
targetChart.scroller.mouseMoveHandler(targetE);
}
if (
chart.mouseIsDown == "mouseup" ||
chart.mouseIsDown == "mousedown"
) {
if (targetChart && targetChart.xAxis[0]) {
var targetXAxis = targetChart.xAxis[0];
targetXAxis.setExtremes(
extremes.min,
extremes.max
);
}
}
});
return false;
});
}
});
},
};
</script>
你看看事件注冊部分是不是和你的那個代碼很像,沒錯,我就是照著抄的。
至于offset方法是啥?因為我完全不依賴于jquery,所以自己實現(xiàn)了一個offset方法,基本也是照著jquery源碼抄著改的
也可以給你看一下offset的代碼
// offset: borrow ideas from the implement of offset in jQuery.fn.extend
export const offset = elem => {
/* jshint eqeqeq: false */
const isWindow = obj => obj != null && obj == obj.window;
const getWindow = ele =>
isWindow(ele)
? ele
: ele.nodeType === 9 ? ele.defaultView || ele.parentWindow : false;
let docElem,
win,
box = { top: 0, left: 0 },
doc = elem && elem.ownerDocument;
if (!doc) {
return;
}
docElem = doc.documentElement;
// Make sure it's not a disconnected DOM node
if (!docElem.contains(elem)) {
return box;
}
// If we don't have gBCR, just use 0,0 rather than error
// BlackBerry 5, iOS 3 (original iPhone)
if (typeof elem.getBoundingClientRect === "function") {
box = elem.getBoundingClientRect();
}
win = getWindow(doc);
return {
top:
box.top +
(win.pageYOffset || docElem.scrollTop) -
(docElem.clientTop || 0),
left:
box.left +
(win.pageXOffset || docElem.scrollLeft) -
(docElem.clientLeft || 0),
};
};
哦對了,我只抄了mousemove部分,其它部分你自己對著慢慢抄.
實際使用的時候,addEventListener里的function最好不要匿名,這樣方面組件beforeDestory的時候可以removeEventListener取消監(jiān)聽
北大青鳥APTECH成立于1999年。依托北京大學(xué)優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(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)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復(fù)興的升級產(chǎn)業(yè)鏈。利用北京大學(xué)優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓(xùn)領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務(wù)負責iOS教學(xué)及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術(shù), 熟練的跨平臺面向?qū)ο箝_發(fā)經(jīng)驗,技術(shù)功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通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)師。