v-model的value放new Date,1512921600000是你想要顯示的時間戳
value:new Date(1512921600000)<!DOCTYPE html>真是H5的版本聲明,沒有這東西,瀏覽器不知道你要做什么
https://codepen.io/kingdil/pe...
1.tabbar圖片和文字一一對應,首先考慮到的肯定是循環(huán)數(shù)據(jù)格式應該如下
tabs:[
{
title:'全部',
ico:'http://thyrsi.com/t6/367/1536299620x-1404781180.png',
icon:'http://thyrsi.com/t6/367/1536299648x-1404781180.png',
},
{
title:'營養(yǎng)',
ico:'http://thyrsi.com/t6/367/1536299680x-1404781180.png',
icon:'http://thyrsi.com/t6/367/1536299701x-1404781180.png',
},
{
title:'運動',
ico:'http://thyrsi.com/t6/367/1536299735x-1404781180.png',
icon:'http://thyrsi.com/t6/367/1536299715x-1404781180.png',
}
]
2.選中后圖片變化,文字變色,設選中的索引值為curIdx,當選中索引值等于tabbar索引值時便是該tabbar被選中。添加選中后的class,改變選中后的圖標
<ul class="tabs">
<li :class="{'cur':curIdx==index}" v-for="(item,index) in tabs" @click="selectTabs(index)">
<div class="tab_ico">
<img :src="curIdx==index?item.icon:item.ico" alt="">
</div>
<div class="tab_title">
<span v-text="item.title"></span>
</div>
</li>
</ul>
3.綁定點擊事件,傳索引值,點擊哪個tabbar的時候curIdx就等于改索引值
selectTabs:function(index){
this.curIdx=index;
},顯示用戶列表組件的方式不僅僅是"點擊用戶列表"。也可能是瀏覽器地址欄直接輸入 url?user=tom 等等
如果是內網(wǎng)訪問的話,192.168.1.101:8081/greeting/a/b 就可以了。
如果是外網(wǎng)訪問的話,并且主機運行在樓主自己的局域網(wǎng)內的話,可能就比較麻煩了。
應該是需要 外網(wǎng)ip并且在路由器上做端口映射之類的(沒做過,也不是很清楚)
所以樓主如果是想提供外網(wǎng)能訪問的服務的話,還是去租用個云服務器比較省事、穩(wěn)定。
買服務器的時候,會為你分配外網(wǎng)ip的。
yield *是一個表達式,是用來在一個生成器函數(shù)里執(zhí)行另一個生成器函數(shù)的。
以你第一個代碼為例:
class Collection {
constructor() {
this.items = [];
}
*[Symbol.iterator]() {
yield *this.items.keys();
}
}
var collection = new Collection();
collection.items.push(1);
collection.items.push(3);
collection.items.push(2);
for (let x of collection) {
console.log(x);
}
for (let x of collection) {}
等價于for (let x of collection.[Symbol.iterator]()) {}
等價于for (let x of collection.items.keys()) {}
數(shù)據(jù)驅動更新的時候,整個dom是重新渲染的,相當于你js添加類名之后,vue又重新創(chuàng)建了一遍dom,把原來的覆蓋掉了。
class可以綁定多個值的啊,為社么要操作dom。、
<li
@click="addIcon(item)"
v-for="(item, index) in list" :key="index"
:class="[true ?'big': 'small', item.class]"> //用這種方式綁定,可以控制
{{item.name}}
</li>
list: [
{ name: 1 },
{ name: 2 },
{ name: 3 },
{ name: 4 }
]
addIcon (item) {
this.$set(item, 'class', 'red') // list中沒有class屬性,所以需要借助$set動態(tài)添加才能響應
}使用 https://github.com/ctrlplusb/...
以DashLeft為例:
上邊的這個js改為:
import './style/main.css';
import React from 'react';
import { asyncComponent } from 'react-async-component';
import DashCenter from './component/Center';
import Right from './component/Right';
const AsyncDashLeft = asyncComponent({
resolve: () => import('./component/Left'),
LoadingComponent: () => <div>載入中...</div>
});
class DisplayScreen extends React.Component {
constructor(props) {
super(props);
this.state = {
data:'',
currentComponent:null
}
}
handleKeyDown(event){
// 將停止事件的傳播
event.stopPropagation();
// 阻止元素發(fā)生默認的行為
event.preventDefault();
//console.log('點擊鍵盤事件');
}
promptWarm = () => {
require.ensure(['../../components/warmDialog'], (require) => {
const Message = require('../../components/warmDialog');
this.setState({
currentComponent:<Message />
})
},'promptWarm')
}
componentDidMount() {
let this_ = this;
let date = '';
if(ENV['displayScreen'].topic) {
let dateWS = '';
Util.ws(ENV['displayScreen'].topic, ENV['displayScreen'].interval, returnData=> {
dateWS = returnData;
this.setState({data:dateWS})
});
}
else
{
import('../../../../public/mockJson/kim-001/kim-001.json').then(data=>{
//import('../../../../public/mockJson/kim-001/kim-001.json').then(data=>{
this.setState({data:data})
});
}
}
render() {
return (
<div id="appDash">
<span onClick={this.promptWarm} >
按需加載模塊
</span>
{this.state.currentComponent}
{
this.state.data?
<div >
<AsyncDashLeft data={this.state.data}/>
<DashCenter data={this.state.data}/>
<Right data={this.state.data}/>
</div>:''
}
</div>
);
}
}
export default DisplayScreen;用這種方式去裁個圓形比較好
還是右鍵另存為實用
內容相同的話,域名指向同一目錄訪問一份文件就行,我們公司就這樣,阿里云上一年1W左右的服務器就夠用了
如果需要用到kafka自帶的命令行provider和命令行consumer就要配置。
data() {
return {
imgUrl: require('../a.png');
}
}
調用:
<img :src="imgUrl" />
mysql.ini文件
sql-mode=”NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION”
改成
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"
就會出現(xiàn)報錯情況
其實這個是mysql在幫你把null轉換成''
.php.$('button').click(function(){
$.post("test.php", {}, function(data) {
console.log(data);
});
})建議去學習一下sftpfs庫,獲取方式如下:
go get github.com/spf13/afero/sftpfs
這些現(xiàn)成的庫,可以免去你的很多工作。
注意圖片,
我們先看1:在控制臺打印login值,false。好像沒問題,No!注意雙引號,它其實是字符串。
再看2:我們if("false"),發(fā)現(xiàn)控制流程走的是true【3】!
sessionStorage只能存放String類型。
sessionStorage.login = {};//就算賦值一個對象
"[object Object]"http://輸出也是這樣
你可以換種方式,使用0、1,然后用字符串對比
return promise2 返回的是 undefined 當然沒有 then 方法;return Promise.resolve(value) 是一個 promise對像卻在 then 里拿到了值 ;其實是 promise/A+ 規(guī)范 規(guī)定的, 而nodejs是根據(jù)這個規(guī)范來實現(xiàn)Promise;
類似的還有下面:
var obj = {
then: function(ok,no){
ok('ok')
}
}
Promise.resolve(obj).then(function(v){
console.log(v); //輸出 ok
})
總結起來就是: 如果返回的值是函數(shù)或對像且有'then'方法,就會把這個'then'當成promise對像的then去使用,
如果返回來還是有'then' 就繼續(xù)調...
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產業(yè)為響應國家深化產教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產業(yè)鏈。利用北京大學優(yōu)質教育資源及背
博為峰,中國職業(yè)人才培訓領域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務負責iOS教學及管理工作。
浪潮集團項目經(jīng)理。精通Java與.NET 技術, 熟練的跨平臺面向對象開發(fā)經(jīng)驗,技術功底深厚。 授課風格 授課風格清新自然、條理清晰、主次分明、重點難點突出、引人入勝。
精通HTML5和CSS3;Javascript及主流js庫,具有快速界面開發(fā)的能力,對瀏覽器兼容性、前端性能優(yōu)化等有深入理解。精通網(wǎng)頁制作和網(wǎng)頁游戲開發(fā)。
具有10 年的Java 企業(yè)應用開發(fā)經(jīng)驗。曾經(jīng)歷任德國Software AG 技術顧問,美國Dachieve 系統(tǒng)架構師,美國AngelEngineers Inc. 系統(tǒng)架構師。