做爲一個優秀的程序員,不只僅能夠解決工做的問題,還要不斷的關注前端技術的發展,其中也包括瞭解最新的前端面試題,那麼知識點來了,請接好javascript
除了這兩個,關於es6的經常使用還有箭頭函數、模板字符串、變量的解構賦值等css
所謂的跨域問題是因爲瀏覽器的同源策略限制的,當協議域名端口號不一樣即爲跨域,對於協議和端口來講,前端不能解決。
解決跨域的幾種方式: html
1** 信息,服務器收到請求,須要請求者繼續執行操做(101,升級爲websocket協議)
2** 成功,操做被成功接收並處理(206,部份內容,分段傳輸)
3** 重定向,須要進一步操做以完成請求(301,302重定向;304命中緩存)
4** 客戶端錯誤,請求包含語法錯誤或沒法完成請求(401,要求身份驗證;403,服務器理解客服端需求,可是禁止訪問)
5** 服務器錯誤,服務器在處理請求的過程當中發生了錯誤前端
getList: function () {
var me = this;
$.ajax({
url: '/test',
type: 'POST',
data: {
repaymentId: repaymentId
},
xhrFields: {
withCredentials: true
},
success: function (result) {
if (result.status == 0) {
console.log('請求成功')
} else {
console.log('請求異常')
}
},
error: function (result) {
$.toaster({ title: 'info', priority: 'danger', message: '服務器異常,請聯繫管理員!' });
}
})
}
複製代碼
關於vue生命週期,可參考這篇文章 連接vue
初始化html5
更新java
卸載react
設置默認props有兩種方式css3
static defaultProps = {
age: 18
}
複製代碼
Greeting.defaultProps = {
name: '我是props的默認值!'
}
複製代碼
1.函數式定義的無狀態組件,適用於純展現組件,只負責根據傳入的props展現,不涉及state狀態的操做,特色以下程序員
function MyTest1() {
return <h1>工廠(無狀態)函數(最簡潔, 推薦使用)</h1>
}
複製代碼
2.es5原生方式React.createClass定義有狀態的組件
var MyTest2=React.createClass({
render(){
return <h1>ES5老語法(不推薦使用了)</h1>
}
})
複製代碼
3.es6形式的extends React.Component定義的組件,是以ES6的形式來建立react的組件的,是React目前極爲推薦的建立有狀態組件的方式
class MyTest3 extends React.Component{
render(){
return <h1>ES6類語法(複雜組件, 推薦使用)</h1>
}
}
複製代碼
React.createClass與React.Component區別
一、https協議須要到ca申請證書,通常免費證書較少,於是須要必定費用。
二、http是超文本傳輸協議,信息是明文傳輸,https則是具備安全性的ssl加密傳輸協議。
三、http和https使用的是徹底不一樣的鏈接方式,用的端口也不同,前者是80,後者是443。
四、http的鏈接很簡單,是無狀態的;HTTPS協議是由SSL+HTTP協議構建的可進行加密傳輸、身份認證的網絡協議,比http協議安全
外部函數調用以後其變量對象本應該被銷燬,但閉包的存在使咱們仍然能夠訪問外部函數的變量對象
// 傳參
router: {
path: '/test/:id'
}
// 獲取
this.$route.params.id
// 經過query
<router-link :to="{path: '/test',query:{name: 'aaa'}}">跳轉</router-link>
複製代碼
1.H5
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>css居中的十種方式</title>
<style>
.wrap {
width: 200px;
height: 200px;
border: 1px solid red;
position: relative;
}
.size {
width: 100px;
height: 100px;
}
/*第一種 已知元素寬高下使用position+ 負margin實現 兼容性較好*/
.box1 {
background-color: pink;
position: absolute;
top: 50%;
left: 50%;
margin-top: -50px;
margin-left: -50px;
}
/*第二種 已知元素寬高下使用position+margin auto實現 兼容性較好*/
.box2 {
background-color: pink;
position: absolute;
top: 0px;
left: 0px;
right: 0px;
bottom: 0px;
margin: auto;
}
/*第三種 已知元素寬高下使用position+calc計算實現 考慮c3 calc兼容性 需注意的問題是運算符之間要有空格,不然不生效*/
.box3 {
background-color: pink;
position: absolute;
top: calc(50% - 50px);
left: calc(50% - 50px);
}
/*第四種 未知元素寬高下使用position+transform實現 依賴translate2d兼容性*/
.box4 {
position: absolute;
background-color: pink;
top: 50%;
left: 50%;
transform: translate(-50%, -50%);
}
/*第五種 未知元素寬高下使用lineheight實現*/
.wrap2 {
line-height: 400px;
width: 200px;
text-align: center;
border: 1px solid red;
}
.box5 {
background-color: pink;
/*不加如下內容內部div會擴充外部div,且內容居中*/
display: inline-block; /*不獨佔一行的塊元素*/
vertical-align: middle; /*垂直方向居中*/
line-height: initial; /*默認內容行高*/
text-align: left;
}
/*第六種 未知寬高使用writing-mode屬性*/
.wrap3 {
writing-mode: vertical-lr; /*內容變爲垂直分佈*/
text-align: center;
}
/*inner 部分寬度100%居中*/
.inner{
writing-mode: horizontal-tb;
text-align: center;
display:inline-block;
width: 100%;
background-color: pink;
}
.box6 {
display: inline-block;
margin: auto;
background-color: rgb(140, 216, 68);
}
/*第七種 未知寬高使用table-cell屬性*/
.wrap4 {
display: table-cell;
text-align: center;
vertical-align: middle;
}
.box7 {
background-color: pink;
display: inline-block;
}
/*第八種 未知寬高使用flex屬性*/
.box8{
background-color: pink;
}
.wrap5{
display: flex;
justify-content: center;
align-items: center;
}
/*第九種 未知寬高使用grid, 兼容性較差*/
.wrap6{
display: grid;
}
.box9 {
align-self: center;
justify-self: center;
background-color: pink;
}
/*第十種 使用表格table實現*/
.wrap7 {
text-align: center;
}
.box10 {
display: inline-block;
background-color: pink;
}
</style>
</head>
<body>
<div class="wrap">
<div class="box1 size">知11111</div>
</div>
<div class="wrap">
<div class="box2 size">知2222</div>
</div>
<div class="wrap">
<div class="box3 size">知3333</div>
</div>
<div class="wrap">
<div class="box4">未44444</div>
</div>
<div class="wrap2">
<div class="box5">未55555</div>
</div>
<div class="wrap3 wrap">
<div class="inner">
<div class="box6">未66666</div>
</div>
</div>
<div class="wrap wrap4">
<div class="box7">未777777</div>
</div>
<div class="wrap wrap5">
<div class="box8">未88888</div>
</div>
<div class="wrap wrap6">
<div class="box9">未9999</div>
</div>
<table>
<tbody>
<tr>
<td class="wrap wrap7">
<div class="box10">未10101010</div>
</td>
</tr>
</tbody>
</table>
</body>
</html>
複製代碼
rem是根據根的font-size變化,而em是根據父級的font-size變化
這裏值得注意的是,在react的子組件中是不能夠改變父組件中的值,解決辦法能夠是在子組件中向父組件傳遞一個狀態,接着在父組件中經過這個狀態值來判斷是否要改變數據值,並在父組件中更新狀態
還在後續補充中,不足之處還請指教……