国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

前端初學(xué)基礎(chǔ)知識(shí) 2

JowayYoung / 1030人閱讀

摘要:數(shù)值越小,排列越靠前,默認(rèn)為。而不是直接改變狀態(tài)。接受一個(gè)與實(shí)例具有相同方法和屬性的對(duì)象,來提交一個(gè)通過方法觸發(fā)允許我們將分割成模塊。添加的方式使其成為命名空間模塊,它的所有及都會(huì)自動(dòng)根據(jù)模塊注冊(cè)的路徑調(diào)整命名。

1.SCSS語法 變量申明

$+變量名+:+變量值 例$width:200px

$width:200px 普通變量

$width:200px !default 默認(rèn)變量即可覆蓋

選擇器嵌套

scss

nav {
  a {
    color: red;
    
    header {
      color:green;
    }
  }  
}
屬性嵌套

css:

.box {
     font-size: 12px;
     font-weight: bold;
}

scss:

.box {
  font: {
   size: 12px;
   weight: bold;
  }  
}
偽類嵌套
.clearfix{
&:before,
&:after {
    content:"";
    display: table;
  }
&:after {
    clear:both;
    overflow: hidden;
  }
}
聲明混合宏(可帶參數(shù))

申明:

@mixin border-radius {
    -webkit-border-radius: 5px;
    border-radius: 5px;
}

調(diào)用:

button {
    @include border-radius;
}
sass 繼承
.btn {
  border: 1px solid #ccc;
  padding: 6px 10px;
  font-size: 14px;
}
.btn-primary {
  background-color: #f36;
  color: #fff;
  @extend .btn;
}

sass占位符%:用占位符聲明的代碼,如果不被@extend調(diào)用就不會(huì)被編譯。

sass:支持加減乘除

2.JavaScript獲取元素父節(jié)點(diǎn)、子節(jié)點(diǎn)、兄弟節(jié)點(diǎn)

el.parentNode:獲取元素父節(jié)點(diǎn)

el.parentElement:獲取元素父節(jié)點(diǎn),目前沒發(fā)現(xiàn)與parentNode的區(qū)別在哪里

el.childNodes:獲取元素子節(jié)點(diǎn),會(huì)計(jì)算text,回車也算!

el.children獲取元素子節(jié)點(diǎn),不計(jì)算text.

el.nextSibling:后一個(gè)節(jié)點(diǎn)

el.previousSibling: 前一個(gè)節(jié)點(diǎn)

3.flex布局

display: flex

display: inline-flex

webkit內(nèi)核瀏覽器加上-webkit前綴

基本概念

???????容器默認(rèn)存在兩根軸:水平的主軸(main axis)和垂直的交叉軸(cross axis)。主軸的開始位置(與邊框的交叉點(diǎn))叫做main start,結(jié)束位置叫做main end;交叉軸的開始位置叫做cross start,結(jié)束位置叫做cross end。
項(xiàng)目默認(rèn)沿主軸排列。單個(gè)項(xiàng)目占據(jù)的主軸空間叫做main size,占據(jù)的交叉軸空間叫做cross size

容器的屬性

flex-direction:項(xiàng)目排列方向row、column、row-reverse、column-reverse

flex-wrap:nowrap、wrap、wrap-reverse

flex-flow:flex-direction和flex-wrap的簡(jiǎn)寫形式

justify-content:主軸上的對(duì)齊方式flex-start、flex-end、center、space-between、space-around

align-items:交叉軸上的對(duì)齊方式flex-start、flex-end、baseline、strentch

align-content:多根軸線的對(duì)齊方式。如果項(xiàng)目只有一根軸線,該屬性不起作用。

項(xiàng)目屬性

order:項(xiàng)目的排列順序。數(shù)值越小,排列越靠前,默認(rèn)為0。

flex-grow:項(xiàng)目的放大比例,默認(rèn)為0,即如果存在剩余空間,也不放大。

flex-shrink:項(xiàng)目的縮小比例,默認(rèn)為1,即如果空間不足,該項(xiàng)目將縮小

flex-basis:配多余空間之前,項(xiàng)目占據(jù)的主軸空間(main size)。

flex:flex-grow, flex-shrink 和 flex-basis的簡(jiǎn)寫,默認(rèn)值為0 1 auto。后兩個(gè)屬性可選。

algin-self:允許單個(gè)項(xiàng)目有與其他項(xiàng)目不一樣的對(duì)齊方式,可覆蓋align-items屬性。

4.vuex 狀態(tài)管理模式

???????核心概念:vuex應(yīng)用的核心是store,里面包含大部分的state,vuex的狀態(tài)存儲(chǔ)是響應(yīng)式的,state中的狀態(tài)不能直接更改

state

gettter

mutation

action

module

/*vueStore.js*/
import Vue from "vue"
import Vuex from "vuex"
import moduleA from "./moduleA.js"

Vue.use(Vuex);

let state = {
  a1: 12,
  data: ["a","a","a","a","a"]
};

let getters = {
  printData: state => {
    console.log(state.data);
    return state.data;
  }
};

let mutations = {
  setData(state, data){
    state.data = data;
  }
};

let actions = {
  setData({ commit },n){
    commit("setData", n);
  }
};

export default new Vuex.Store({
    strict: true,
    state,
    getters,
    mutations,
    actions,
    modules: {
    moduleA
  }
});
/*moduleA.js*/
let state = {
  data: ["A", "A"," A", "A", "A"]
};

let getters = {
  printDataA: state => {
    return state.data;
  }
};

let mutations = {
  setDataA(state, data) {
    state.data = data;
  }
};

let actions = {
  setDataA({commit}, n) {
    commit("setDataA", n);
  }
};

export default ({
  strict: true,//嚴(yán)格模式
  namespaced: true,
  state,
  getters,
  mutations,
  actions
})
state

???????在根實(shí)例中注冊(cè)store選項(xiàng),該store就會(huì)注入到下面的所有組件,子組件通過this.$store能訪問到

    computed: {
        count () {
        return this.$store.state.data //["a","a","a","a","a"]
        }
    }
getter

???????getter類似于計(jì)算屬性,它的返回值會(huì)根據(jù)它的依賴被緩存起來,只有當(dāng)它它的依賴值發(fā)生改變才會(huì)重新計(jì)算,也可以接受其他get特然作為第二個(gè)參數(shù)

getter會(huì)暴露store。getter對(duì)象

methods:{
    getData(){
        this.$store.getters.printData; //["a","a","a","a","a"]
    }
}

通過方法訪問

getters: {
  getTodoById: (state) => (id) => {
    return state.todos.find(todo => todo.id === id)
  }
}
store.getters.getTodoById(2) // -> { id: 2, text: "...", done: false 
mutation

???????vuex中更改store中的狀態(tài)的唯一方法就是提交mutation,它接受state作為第一個(gè)參數(shù),觸發(fā)mutation的方法徐調(diào)用store.commit,我們可以向store.commit轉(zhuǎn)入額外的參數(shù),即mutation的載荷(payload)

methods:{
      send(){
        this.$store.commit("setData", [0,0,0,0,0]);
        console.log(this.$store.state.data); //[0,0,0,0,0]
      }

mutation必須是同步函數(shù);

action

action類似于mutation,不同在于:

action提交的是mutation。而不是直接改變狀態(tài)。

action可以包含任意異步操作。

???????action接受一個(gè)與store實(shí)例具有相同方法和屬性的context對(duì)象,context.commit來提交一個(gè)mutation、context.state、context.getters

Action 通過 store.dispatch 方法觸發(fā):

methods:{
      send(){
        this.$store.dispatch("setData", [0,0,0,0,0]);
        console.log(this.$store.state.data); //[0,0,0,0,0]
      }
    }
module

???????Vuex 允許我們將 store 分割成模塊(module)。每個(gè)模塊擁有自己的 state、mutation、action、getter、甚至是嵌套子模塊——從上至下進(jìn)行同樣方式的分割

store.state.moduleA //moduleA的狀態(tài)
store.commit("setDataA",[0,0,0,0,0]) //觸發(fā)moduleA的mutation中的setDataA
store.dispatch("setDataA",[0,0,0,0,0]) //moduleA  actions
store.getters.printDataA; //getter

命名空間
???????默認(rèn)情況下模塊內(nèi)部的action、mutation、getter是注冊(cè)在全局命名空間的,所以多個(gè)模塊能夠?qū)ν籱utation、action做出響應(yīng)。添加namespaced: true的方式使其成為命名空間模塊,它的所有 getter、action 及 mutation 都會(huì)自動(dòng)根據(jù)模塊注冊(cè)的路徑調(diào)整命名。

store.state.moduleA //moduleA的狀態(tài)
store.commit("moduleA/setDataA",[0,0,0,0,0]) //觸發(fā)moduleA的mutation中的setDataA
store.dispatch("moduleA/setDataA",[0,0,0,0,0]) //moduleA  actions
store.getters["moduleA/printDataA"]; //moduleA  getter
5.axios 一、請(qǐng)求的方式 1、通過配置發(fā)送請(qǐng)求

axios(config);
axios(url[,config]);

axios({
    method:"POST",
    url:"/user/a",
    data:{
        msg: "helloWorld"
    }
});
2、通過別名發(fā)送請(qǐng)求

axios.request(config);

axios.get(url[,config]);

axios.delete(url[,config]);

axios.head(url[,config]);

axios.post(url[,data[,config]]);

axios.put(url[,data[,config]])

axios.patch(url[,data[,config]])

3、并發(fā)請(qǐng)求

axios.all(params)
axios.spread(callback) ; //callback要等到所有請(qǐng)求都完成才會(huì)執(zhí)行

4、創(chuàng)建axios實(shí)例

axios.create([config])
實(shí)例方法

axios#request(config)
axios#get(url[,config])
axios#delete(url[,config])
axios#head(url[,config])
axios#post(url[,data[,config]])
axios#put(url[,data[,config]])
axios#patch(url[,data[,config]])
二、請(qǐng)求的配置參數(shù)

url: 請(qǐng)求地址

method:請(qǐng)求方式默認(rèn)get

baseURL:相對(duì)地址

transformRequest:選項(xiàng)允許我們?cè)谡?qǐng)求發(fā)送到服務(wù)器之前對(duì)請(qǐng)求的數(shù)據(jù)做出一些改動(dòng)

transformResponse:選項(xiàng)允許我們?cè)跀?shù)據(jù)傳送到then/catch方法之前對(duì)數(shù)據(jù)進(jìn)行改動(dòng)

headers:自定義請(qǐng)求頭信息

params:項(xiàng)是要隨請(qǐng)求一起發(fā)送的請(qǐng)求參數(shù)----一般鏈接在URL后面

data:選項(xiàng)是作為一個(gè)請(qǐng)求體而需要被發(fā)送的數(shù)據(jù),該選項(xiàng)只適用于方法:put/post/patch

timeout:如果請(qǐng)求花費(fèi)的時(shí)間超過延遲的時(shí)間,那么請(qǐng)求會(huì)被終止

responseType:返回?cái)?shù)據(jù)的格式

onUploadProgress:下載進(jìn)度的事件

...

獲取響應(yīng)信息
/*search.js*/
import axios from "axios";

export default function (keywords, type) {
  const require = new Promise((resolve, reject) => {
    axios.get("http://47.94.16.170:3000/search",{
      params:{
        keywords: keywords,
        type: type
      },
    }).then((data)=> {
      resolve(data);
    })
  });
  return require;
}


/*調(diào)用*/
import search from "@/api/search";

let that = this;
search(this.searchText, this.searchType).then(function (data) {
    that.content = data.result;
})
三、默認(rèn)配置 1.全局默認(rèn)配置
axios.defaults.baseURL = "http://api.exmple.com";
2.自定義的實(shí)例默認(rèn)設(shè)置
var instance = axios.create({
    baseURL: "https://api.example.com"
});

instance.defaults.headers.common["Authorization"] = AUTH_TOKEN;

instance.get("/longRequest",{
  timeout: 5000
});
3.配置優(yōu)先級(jí)

lib/defaults.js < 實(shí)例中的默認(rèn)配置 < 請(qǐng)求中的默認(rèn)配置

四、攔截器
//添加一個(gè)請(qǐng)求攔截器
axios.interceptors.request.use(function(config){
  //在請(qǐng)求發(fā)出之前進(jìn)行一些操作
  return config;
},function(err){
  //Do something with request error
  return Promise.reject(error);
});
//添加一個(gè)響應(yīng)攔截器
axios.interceptors.response.use(function(res){
  //在這里對(duì)返回的數(shù)據(jù)進(jìn)行處理
  return res;
},function(err){
  //Do something with response error
  return Promise.reject(error);
})

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/110136.html

相關(guān)文章

  • 我是如何從零開始學(xué)習(xí)前端

    摘要:相關(guān)頻道最后的坦白最后我得承認(rèn)這一次我又標(biāo)題黨了無非是想吸引更多前端初學(xué)者進(jìn)來,希望大家都能少走一些彎路,也希望那些從零開始自學(xué)前端的同學(xué)更有勇氣去面對(duì)自己的選擇。 我是怎么走上前端開發(fā)這條路? 首先,我是個(gè)文科生,大學(xué)里只學(xué)過vb,覺得計(jì)算機(jī)編程這東西太玄乎,不是我玩得轉(zhuǎn)的。 后來機(jī)緣巧合去做了一家互聯(lián)網(wǎng)創(chuàng)業(yè)公司的HR,閱了上千份程序員的簡(jiǎn)歷,面了上百個(gè)不同水平不同領(lǐng)域的程序員。跟程...

    mykurisu 評(píng)論0 收藏0
  • Java 初學(xué)者做的第一個(gè)微信小程序總結(jié)--關(guān)于Java基礎(chǔ)

    摘要:官方資料微信公眾平臺(tái)注冊(cè)小程序。官網(wǎng)開發(fā)文檔社區(qū)開發(fā)工具部署微信小程序微信小程序本身不需要部署,在微信開發(fā)工具中直接上傳代碼就行。 為什么 學(xué)習(xí) Java 三年,目前已經(jīng)工作了2年,因?yàn)樽詫W(xué),基礎(chǔ)差,所以打算年末總結(jié)一下常見的基礎(chǔ)知識(shí)和面試點(diǎn); 也可以通過獨(dú)立做一個(gè)項(xiàng)目整合自己工作期間學(xué)習(xí)的知識(shí),加深印象。 但是想著回家或是平時(shí)手機(jī)用的多,做一款A(yù)PP和小程序很方便查看。 項(xiàng)目展示 本...

    mudiyouyou 評(píng)論0 收藏0
  • 基礎(chǔ)前端開發(fā)初學(xué)者應(yīng)如何系統(tǒng)地學(xué)習(xí)?

    摘要:在有了基礎(chǔ)之后,進(jìn)一步學(xué)習(xí)內(nèi)容包括框架。前端學(xué)習(xí)交流群禁止閑聊,非喜勿進(jìn)。代碼提交前必須做的三個(gè)事情檢查所有變更跑一邊單元測(cè)試手動(dòng)運(yùn)行一遍所有 網(wǎng)站開發(fā)開發(fā)大致分為前端和后端,前端主要負(fù)責(zé)實(shí)現(xiàn)視覺和交互效果,以及與服務(wù)器通信,完成業(yè)務(wù)邏輯。其核心價(jià)值在于對(duì)用戶體驗(yàn)的追求。可以按如下思路學(xué)習(xí)系統(tǒng)學(xué)習(xí): 基礎(chǔ)知識(shí): html + css 這部分建議在?w3school 在線教程上學(xué)習(xí),邊...

    JouyPub 評(píng)論0 收藏0
  • 基礎(chǔ)前端開發(fā)初學(xué)者應(yīng)如何系統(tǒng)地學(xué)習(xí)?

    摘要:在有了基礎(chǔ)之后,進(jìn)一步學(xué)習(xí)內(nèi)容包括框架。前端學(xué)習(xí)交流群禁止閑聊,非喜勿進(jìn)。代碼提交前必須做的三個(gè)事情檢查所有變更跑一邊單元測(cè)試手動(dòng)運(yùn)行一遍所有 網(wǎng)站開發(fā)開發(fā)大致分為前端和后端,前端主要負(fù)責(zé)實(shí)現(xiàn)視覺和交互效果,以及與服務(wù)器通信,完成業(yè)務(wù)邏輯。其核心價(jià)值在于對(duì)用戶體驗(yàn)的追求。可以按如下思路學(xué)習(xí)系統(tǒng)學(xué)習(xí): 基礎(chǔ)知識(shí): html + css 這部分建議在?w3school 在線教程上學(xué)習(xí),邊...

    funnyZhang 評(píng)論0 收藏0
  • 前端——基礎(chǔ)

    摘要:思路屢清楚后,我們就開始說零基礎(chǔ)如何自學(xué)前端開發(fā)。首先,了解前端是干什么用的,簡(jiǎn)單來說就是負(fù)責(zé)把網(wǎng)站的頁面以一種更好的用戶體驗(yàn)提供給客戶的一份工作,就是做網(wǎng)站開發(fā)的。其實(shí)這個(gè)問題很簡(jiǎn)單,我用最簡(jiǎn)單的語言給大家描述一下,學(xué)習(xí)一樣?xùn)|西就要了解這樣?xùn)|西學(xué)完了要干什么事情,有什么作用。然后就是應(yīng)該學(xué)習(xí)哪些必要的內(nèi)容,該如何運(yùn)用得當(dāng)?shù)姆椒ㄟM(jìn)行有效率的學(xué)習(xí)不至于自己摸不著頭腦,然后就是一直堅(jiān)持下去,直到...

    番茄西紅柿 評(píng)論0 收藏0
  • 前端初學(xué)基礎(chǔ)知識(shí) 3

    摘要:根據(jù)瀏覽器設(shè)備的繪制限制來更新動(dòng)畫,回調(diào)的次數(shù)常是每秒次。鼠標(biāo)移入則停止自動(dòng)改變樹枝狀態(tài),轉(zhuǎn)為由鼠標(biāo)的橫縱坐標(biāo)控制。基本的深拷貝方法數(shù)組,等方法,新增運(yùn)算符對(duì)象思路是把對(duì)象拆開分別賦值,同樣可以使用新增運(yùn)算符,循環(huán)等。 canvas動(dòng)畫 ???????動(dòng)畫的形成:先畫出一幅圖,改變其中的一些參數(shù),重新繪制圖片...不斷的重復(fù)形成動(dòng)畫。 fillStyle:設(shè)置或返回填充繪畫的顏色,漸...

    Chao 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<