沒有試過這種方式引入,我通常是直接vue-cli初始化一個模板,然后在main.js里引入的。
你這種情況看上去是CSS沒有引入成功,你可以試著把依賴文件夾(node_modules)下的mint-ui下的對應css文件拷出來,在index.html中引入,然后到瀏覽器控制臺去看相應的css樣式是不是引入成功了。
你如果要把 data2 當做 data1 每一項的 info 屬性,難道不是
data1.forEach(el => el.info = data2.concat())你要完成什么效果,要用到取dom 節(jié)點的,一般vue都能達成想要的效果啊
睡個覺之后做了個莫名其妙的操作,就弄好了。這個頁面我是通過嵌套路由過來的
<div class="content"><router-view></router-view> </div>
在.content那里我設置了絕對定位,就不行了,剛剛我把絕對定位去掉了,就好了。但是我不太明白為什么,誰能為我解惑?。?/p>
webpack 加載不加載哪個文件, 與你把文件放在哪個目錄無關, 與你設不設置 loader也無關。
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內部會記錄一個 文件名與 webpack內部地址的 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è)務的集合,集中配置管理.
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 結果數(shù)據(jù)
case 'GET_OFFICE_LIST':
return Object.assign({}, state, {
officeList: action.payLoad.data
});
//處理 類型為 GET_OFFICE_DETAIL 結果數(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集合,因為很有可能某個頁面 需要調用多個子action
import Actions from '../actions';
class office extends Component {
//生命周期此次不討論
componentDidMount() {
//請求機構 數(shù)據(jù)
this.props.action.getOfficeList();
}
handleOnRowClick = (officeId)=>{
//點擊行 獲取結構詳情數(shù)據(jù)
this.props.action.getOfficeInfo(officeId);
}
render() {
<div className="tableDistance">
<Table rowSelection={rowSelection} columns={columns}
dataSource={this.props.office.officeList}//綁定機構數(shù)據(jù)并展現(xiàn)
bordered size="middle"
pagination={false} onRowClick={this.handleOnRowClick}
/>
</div>
}
}
//我習慣叫訂閱-訂閱Reducer/index.js集合中的需要的狀態(tài),reducer/office在這里進行綁定(數(shù)據(jù)結構具體見:initState),reducer/office數(shù)據(jù)變化這里就會變化,這里可以理解為數(shù)據(jù)源
const mapStateToProps = (state) => {
return {
office: state.office,
user:state.user
}
};
//將引入的Actions綁定,使當前展現(xiàn)層具備 請求數(shù)據(jù)的能力,需要什么數(shù)據(jù),就請求對應的 方法名(這就是為什么腔調actions/office.js 中的每個action 名稱一定要全局唯一,還是那句話,這個頁面可能需要多個子action的數(shù)據(jù)能力作為數(shù)據(jù)集中展現(xiàn)的基礎)
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ù)結構設計的有問題吧。
比如返回一個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的模式
看題主的描述,估計對angular都沒有一個基本的了解,我建議先把angular的基礎知識過一下,至于你的問題是很容易解決的,angular是組件化的,就比如你的footer模板已經(jīng)寫好了,你想到處復用它,那你可以新建一個footer組件,然后把你寫好的模板內容拷到tooter組件的模板上去,在根模塊注冊好這個組件,然后在其它的頁面上都可以引用這個組件了
可以試下input或者change事件
是不是service-worker的緩存導致的。
service-worker生效之后,可能會強制緩存一些資源,這里面很可能就包含了靜態(tài)資源。
你可以禁用掉瀏覽器緩存或者在代碼里面去掉service-worker,強制刷新幾次看看是不是這個原因
1.express 不需要打包
2.把前端代碼打包到express的靜態(tài)目錄下
3.express路由寫好,在模版html里(一般是jade或者ejs)引用靜態(tài)目錄下的打包后的js和css
4.開啟express的端口監(jiān)聽
注意:
1.模板html的飲用路徑是服務器的訪問路徑,不是項目內的文件和文件的路徑
2.前端打包每個人都會可能會碰到問題,要嘗試解決一下
你的藍色部分用的是overflow: auto或者scroll吧,這將會導致這部分滑動的時候,頁面其他部分不會隨滾動條滾動。你可以用js監(jiān)聽藍色部分的滑動事件,來實現(xiàn)
issue1: css權重問題;id選擇器優(yōu)先于class選擇器;
issue2: toggleClass已經(jīng)執(zhí)行,只是alert中斷了樣式的重繪;
你可以在toggleClass中使用function,在function中打印日志,然后會發(fā)現(xiàn)日志打印成功,然后alert,然后alert關閉后,樣式變更才生效
你是想生成帶參的二維碼嗎?如果是的話,小程序必須是線上版本才能生成帶參二維碼
@connect(
state => state.auth
)
@connect接受一個函數(shù)作為參數(shù),將這個函數(shù)的返回值對象展開傳給組件,即作為組件的props
json文件路徑貼一下看看
自己沒加分號,難怪一直不行
北大青鳥APTECH成立于1999年。依托北京大學優(yōu)質雄厚的教育資源和背景,秉承“教育改變生活”的發(fā)展理念,致力于培養(yǎng)中國IT技能型緊缺人才,是大數(shù)據(jù)專業(yè)的國家
達內教育集團成立于2002年,是一家由留學海歸創(chuàng)辦的高端職業(yè)教育培訓機構,是中國一站式人才培養(yǎng)平臺、一站式人才輸送平臺。2014年4月3日在美國成功上市,融資1
北大課工場是北京大學校辦產(chǎn)業(yè)為響應國家深化產(chǎn)教融合/校企合作的政策,積極推進“中國制造2025”,實現(xiàn)中華民族偉大復興的升級產(chǎ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)架構師。