1 在B應(yīng)用的掃描路徑中排除掉A項目的定時任務(wù)所在的路徑,不被掃描掉自然不被Spring處理
2 注解修改為配置文件,按需引入配置文件去加載Bean,不需要不加載即可
upload有手動上傳文件的模式,你仔細看下
upload有change事件,會返回你上傳的文件及列表,保存下來,然后寫個按鈕手動提交保存的文件
webpack就是個坑,配置復雜的一逼文檔還爛
需要注意兩個問題:
1、安裝es6-promise
2、IE有跨域限制,請求會發(fā)不出去,但是放在服務(wù)器上后沒有問題
寫兩個組件。每個組件都用Form.create()包裹一下就好了。
express 實例上有一些方法,假設(shè) const app = express(),實例上有例如 app.post, app.get 等等路由方法,還有 app.set 方法,一般常用的是設(shè)置模版引擎或者模版引擎路徑:
app.set('view engine', 'pug')
app.set('views', 'path/to/views')
這些設(shè)置都是 express 內(nèi)部的,上面兩行的目的就是設(shè)置模版引擎為 pug ,并將 render 的根目錄設(shè)置到 'path/to/views',當然除了這兩個有很多設(shè)置項,具體可以看 app.set
其中例如 'strict routing' 等配置項接受一個 boolean 值,所以同時可以用 enable 代表設(shè)置該項為 true
app.set('strict routing', true)
app.enable('strict routing')
就代表相同的意思
1.你用Array.prototype.splice來改變你想改變的特定性是不會有問題的,頁面也不會出現(xiàn)閃動。因為vue更新的時候是通過dom diff來做的,只會更新需要更新的部分
2.你這樣用數(shù)組來保存,查找的時間復雜度是O(n),可以維護一個id和數(shù)組下標的對應(yīng)關(guān)系,把時間復雜度降到O(1)
官方有詳細的例子,請參考DatePicker 不可選擇日期和時間
原生js操作dom結(jié)構(gòu)本身就很麻煩,所以jquery出現(xiàn)了;
jquery依然避免不了dom的頻繁操作,于是各種mvvm出現(xiàn)了。
ref
ref是vue本身提供的操作dom的屬性,類似js對id的操作。
你想通過點擊他的同輩組件里的子組件播放音樂,可以用這兩種思路:
在祖父組件下綁定函數(shù)觸發(fā)
不考慮組件復用的情況下,引入vuex
checkedCities1:["上海"] ,這里應(yīng)該對應(yīng)的一個字符串類型的數(shù)組吧。
https://caniuse.com/#search=b... 顯然沒有問題。
你應(yīng)該把你的代碼放出來,然后大家好討論問題出在什么地方
--- 修改問題后編輯的分割線 ----
圖片類型是 jpg 么? safari 對背景圖片使用 jpg 的處理有一些 bug??梢栽囈幌滦薷臑?png
沒有試過這種方式引入,我通常是直接vue-cli初始化一個模板,然后在main.js里引入的。
你這種情況看上去是CSS沒有引入成功,你可以試著把依賴文件夾(node_modules)下的mint-ui下的對應(yīng)css文件拷出來,在index.html中引入,然后到瀏覽器控制臺去看相應(yīng)的css樣式是不是引入成功了。
你如果要把 data2 當做 data1 每一項的 info 屬性,難道不是
data1.forEach(el => el.info = data2.concat())你要完成什么效果,要用到取dom 節(jié)點的,一般vue都能達成想要的效果啊
睡個覺之后做了個莫名其妙的操作,就弄好了。這個頁面我是通過嵌套路由過來的
<div class="content"><router-view></router-view> </div>
在.content那里我設(shè)置了絕對定位,就不行了,剛剛我把絕對定位去掉了,就好了。但是我不太明白為什么,誰能為我解惑??!
webpack 加載不加載哪個文件, 與你把文件放在哪個目錄無關(guān), 與你設(shè)不設(shè)置 loader也無關(guān)。
webpack 打包的時候會靜態(tài)代碼分析:從入口文件開始, 把你require/import的文件打包。
比如 import xx from './src/xx', 那么xx.js 將會被打包,同時會打包xx.js 里面的require/import打包。
類似 ‘./src/xx’這種路徑,靜態(tài)分析的時候是知道文件目錄的,打包沒有問題。 那么假如路徑里面包含變量呢? 比如
var path = ...
require('./src/' + path)
這種時候靜態(tài)分析并不能確切的知道打包src下的哪個文件。此時webpack會打包src下的所有文件。 所以題主 會看到 './src ^./.*$ ' 這樣的路徑。
webpack內(nèi)部會記錄一個 文件名與 webpack內(nèi)部地址的 map記錄。 從而在運行的時候加載。 為了方便理解,貼一下 這種情況webpack打包之后的代碼:
(function(module, exports, __webpack_require__) {
var map = {
"./fd1": 0,
"./fd1.js": 0,
"./fd2": 1,
"./fd2.js": 1
};
function webpackContext(req) {
return __webpack_require__(webpackContextResolve(req));
};
function webpackContextResolve(req) {
var id = map[req];
if(!(id + 1)) // check for number or string
throw new Error("Cannot find module '" + req + "'.");
return id;
};
webpackContext.keys = function webpackContextKeys() {
return Object.keys(map);
};
webpackContext.resolve = webpackContextResolve;
module.exports = webpackContext;
webpackContext.id = 4;
/***/ }),|-src
|----actions
|--------user.js
|--------office.js
|--------index.js
|----reducers
|--------user.js
|--------office.js
|--------index.js
|----pages
|--------office.js
actions目錄中的index.js作為所有業(yè)務(wù)的集合,集中配置管理.
import * as officeActions from './office';
import * as userActions from './user';
export default {
...officeActions,
...userActions,
}
//這里的方法名稱要全局唯一
export function getOfficeList(){
return async(dispatch,getState) => {
let response = await fetch(url);
//這里的type一定要全局唯一,因為狀態(tài)變一次每個Reducer都會根據(jù)類型比對一遍
dispatch({type: 'GET_OFFICE_LIST', payLoad: response.json});
}
}
export function getOfficeInfo(id){
return async(dispatch,getState) => {
let response = await fetch(url+'?id='+id);
//這里的type一定要全局唯一,因為狀態(tài)變一次每個Reducer都會根據(jù)類型比對一遍
dispatch({type: 'GET_OFFICE_DETAIL', payLoad: response.json});
}
}
//這里的方法名稱要全局唯一
export function getUserList(){
return async(dispatch,getState) => {
let response = await fetch(url);
//這里的type一定要全局唯一,因為狀態(tài)變一次每個Reducer都會根據(jù)類型比對一遍
dispatch({type: 'GET_USER_LIST', payLoad: response.json});
}
}
Reducer目錄中的index.js 所有子狀態(tài)的集合,集中配置管理.
import {combineReducers} from 'redux';
import officeReducer from './office';
import userReducer from './user';
const appReducer = combineReducers({
office: officeReducer,
user: userReducer,
});
export default appReducer;
//初始化狀態(tài)
let initialState = {
officeList: [],
officeInfo: {
"id": "",
"parent_id": "",
"parent_ids": "",
"name": "",
},
};
const office = (state = initialState, action) => {
switch (action.type) {
//處理 類型為 GET_OFFICE_LIST 結(jié)果數(shù)據(jù)
case 'GET_OFFICE_LIST':
return Object.assign({}, state, {
officeList: action.payLoad.data
});
//處理 類型為 GET_OFFICE_DETAIL 結(jié)果數(shù)據(jù)
case 'GET_OFFICE_DETAIL':
return Object.assign({}, state, {
officeInfo: action.payLoad.data
});
default:
//如果類型為匹配到 返回當前state
return state;
}
};
export default office
import React, {Component} from 'react'
import {bindActionCreators} from 'redux';
import {connect} from 'react-redux';
//以antd為例
import {Table, Tree, Row, Col, Card, Button, Spin, Modal,Icon} from 'antd';
//引入Action集合,因為很有可能某個頁面 需要調(diào)用多個子action
import Actions from '../actions';
class office extends Component {
//生命周期此次不討論
componentDidMount() {
//請求機構(gòu) 數(shù)據(jù)
this.props.action.getOfficeList();
}
handleOnRowClick = (officeId)=>{
//點擊行 獲取結(jié)構(gòu)詳情數(shù)據(jù)
this.props.action.getOfficeInfo(officeId);
}
render() {
<div className="tableDistance">
<Table rowSelection={rowSelection} columns={columns}
dataSource={this.props.office.officeList}//綁定機構(gòu)數(shù)據(jù)并展現(xiàn)
bordered size="middle"
pagination={false} onRowClick={this.handleOnRowClick}
/>
</div>
}
}
//我習慣叫訂閱-訂閱Reducer/index.js集合中的需要的狀態(tài),reducer/office在這里進行綁定(數(shù)據(jù)結(jié)構(gòu)具體見:initState),reducer/office數(shù)據(jù)變化這里就會變化,這里可以理解為數(shù)據(jù)源
const mapStateToProps = (state) => {
return {
office: state.office,
user:state.user
}
};
//將引入的Actions綁定,使當前展現(xiàn)層具備 請求數(shù)據(jù)的能力,需要什么數(shù)據(jù),就請求對應(yīng)的 方法名(這就是為什么腔調(diào)actions/office.js 中的每個action 名稱一定要全局唯一,還是那句話,這個頁面可能需要多個子action的數(shù)據(jù)能力作為數(shù)據(jù)集中展現(xiàn)的基礎(chǔ))
const mapDispatchToProps = (dispatch) => {
return {
action: bindActionCreators(Actions, dispatch)
}
};
//最重要一步 通過react-redux 提供的 connect函數(shù)將 需要的 Reducer和Actions 綁定至 當前頁面
export default connect(mapStateToProps, mapDispatchToProps)(office);
加分號啊。老生常談了。
function test(){
}
test.prototype = function(){
console.log("test_prototype");
}; //這里加分號,否則就連成一條語句執(zhí)行了
(function(){
console.log("立即執(zhí)行函數(shù)");
})()
// 不加分號,瀏覽器就是這樣認為的:
test.prototype = (function(){
console.log("test_prototype");
})(function(){
console.log("立即執(zhí)行函數(shù)");
})()
// 也就是這樣的:
f1 = function(){
console.log("test_prototype");
};
f2 = function(){
console.log("立即執(zhí)行函數(shù)");
};
test.prototype = f1(f2)()
一般是鍵值對匹配的吧,‘不知道哪張是哪張’是因為你們數(shù)據(jù)結(jié)構(gòu)設(shè)計的有問題吧。
比如返回一個json串
{
"code" : 200,
"result" : {
"list" : [
{ "url":"http://abc.com/i1.png","title":"tlt1"},
{ "url":"http://abc.com/i2.png","title":"tlt2"},
{ "url":"http://abc.com/i3.png","title":"tlt3"}
],
"kv" : {
"key1" : "http://abc.com/i1.png",
"key2" : "http://abc.com/i2.png",
"key3" : "http://abc.com/i3.png",
}
}
}
一般第一種“l(fā)ist”是按順的排列形式,不用區(qū)分,
第二種是key-value的模式
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質(zhì)雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內(nèi)教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構(gòu),是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應(yīng)國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎn)業(yè)鏈。利用北京大學優(yōu)質(zhì)教育資源及背
博為峰,中國職業(yè)人才培訓領(lǐng)域的先行者
曾工作于聯(lián)想擔任系統(tǒng)開發(fā)工程師,曾在博彥科技股份有限公司擔任項目經(jīng)理從事移動互聯(lián)網(wǎng)管理及研發(fā)工作,曾創(chuàng)辦藍懿科技有限責任公司從事總經(jīng)理職務(wù)負責iOS教學及管理工作。
浪潮集團項目經(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)師。