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

資訊專欄INFORMATION COLUMN

前端初學(xué)基礎(chǔ)知識 1

csRyan / 669人閱讀

摘要:前端學(xué)習(xí)記錄基礎(chǔ)知識盒模型所有元素可以看作盒子,在中,這一術(shù)語是用來設(shè)計和布局時使用。合并后的外邊距的高度等于兩個發(fā)生合并的外邊距的高度中的較大者。按照層次結(jié)構(gòu)像至低向上直到頂端,這就是事件冒泡。

前端學(xué)習(xí)記錄 week 1 基礎(chǔ)知識 CSS盒模型

所有HTML元素可以看作盒子,在CSS中,"box model"這一術(shù)語是用來設(shè)計和布局時使用。CSS盒模型本質(zhì)上是一個盒子,封裝周圍的HTML元素,它包括:邊距,邊框,填充,和實際內(nèi)容

Margin - 清除邊框外的區(qū)域,外邊距是透明的。

Border - 圍繞在內(nèi)邊距和內(nèi)容外的邊框。

Padding - 清除內(nèi)容周圍的區(qū)域,內(nèi)邊距是透明的。

Content(內(nèi)容) - 盒子的內(nèi)容,顯示文本和圖像。

CSS3新增box-sizing;border-box:將padding、border的寬度計算在寬度width里面。

html5標(biāo)簽

template: 通過 JavaScript 在運(yùn)行時實例化內(nèi)容的容器。

header: 定義頁面或章節(jié)的頭部。它經(jīng)常包含 logo、頁面標(biāo)題和導(dǎo)航性的目錄。

footer: 定義頁面或章節(jié)的尾部。它經(jīng)常包含版權(quán)信息、法律信息鏈接和反饋建議用的地址。

aside: 定義和頁面內(nèi)容關(guān)聯(lián)度較低的內(nèi)容——如果被刪除,剩下的內(nèi)容仍然很合理。

section: 定義文檔中的一個章節(jié)。

nav: 定義只包含導(dǎo)航鏈接的章節(jié)。

audio:定義音頻內(nèi)容(屬性:autoplay、controls、loop、muted、preload)

video: 定義視頻(屬性同上)

- JavaScript數(shù)據(jù)類型及數(shù)據(jù)結(jié)構(gòu)

JavaScript是一種弱類型語言

6種原始類型

Bool

Object

String

Null

Undefined

Number

*可以使用typeof 判斷數(shù)據(jù)類型,數(shù)組以及null都屬于Object
*Object屬于引用類型,具有:constructor、hasOwnProperty、isPropertyOf、propertyIsEnumerable等方法。

對象的屬性

數(shù)據(jù)屬性:包含一個數(shù)據(jù)值的位置,可以讀寫包含Configurable、Enumerable、Writable、Value 4個特性

訪問器屬性: 不含數(shù)據(jù)值可以包含getter、setter函數(shù),讀取以及寫入會分別觸發(fā)這兩個方法,包含Configurable、Enumerable、get、set特性

修改默認(rèn)特性使用defineProperty(),訪問器屬性不能直接定義,只能調(diào)該用方法。

對象的創(chuàng)建

工廠模式

構(gòu)造函數(shù)

原型模式

構(gòu)造函數(shù):

  function Person(name, age ,job){
    this.name = name;
    this.age = age;
    this.job = job;
    this.sayName = function(){
        console.log(this.name);
    }
  }
  
  let person1 = new Person("name", 20, "job");

原型模式:

  function Person(){
  }
  
  Person.prototype.name = "name";
  Person.prototype.age = 20;
  Person.prototype.job = "job";
  Person.prototype.sayName = function(){
     console.log(this.name);
  }
  
  let person1 = new Person();

JavaScript常用的字符串操作

substring() – 返回字符串的一個子串。傳入?yún)?shù)是起始位置和結(jié)束位置。

substr() - 返回字符串的一個子串。傳入?yún)?shù)是起始位置和個數(shù)。

replace() – 用來查找匹配一個正則表達(dá)式的字符串,然后使用新字符串代替匹配的字符串。

slice() – 提取字符串的一部分,并返回一個新字符串。

split() – 通過將字符串劃分成子串,將一個字符串做成一個字符串?dāng)?shù)組。

length – 返回字符串的長度,所謂字符串的長度是指其包含的字符的個數(shù)。

toLowerCase() – 將整個字符串轉(zhuǎn)成小寫字母。

toUpperCase() – 將整個字符串轉(zhuǎn)成大寫字母。

concat() – 將兩個或多個字符的文本組合起來,返回一個新的字符串。

indexOf() – 返回字符串中一個子串第一處出現(xiàn)的索引。如果沒有匹配項,返回 -1 。

charAt() – 返回指定位置的字符。

match() – 檢查一個字符串是否匹配一個正則表達(dá)式

JavaScript常用的數(shù)組操作

- concat - 合并數(shù)組
- push、pop - 分別為添加、刪除元素,堆棧形式
- unshift、shift  - 添加、刪除元素,隊列形式
- reverse - 反轉(zhuǎn)
- sort() - 排序, arr.sort(function(a,b){return a-b;} 輸入比較函數(shù)
- slice、splice - 刪除,參數(shù)為起始位置和個數(shù),slice不改變原素組,返回新數(shù)組,splice會改變原素組,返回被刪除的數(shù)組。
- substring、substr - 截取數(shù)組,類似于上面字符串中的這兩個方法。

JavaScript模塊化

為了不讓分塊的代碼污染全局,以及更好地使用別人的代碼所以產(chǎn)生了JavaScript模塊化的需求

可以使用立即執(zhí)行函數(shù)

  var params = "test";
  
  var module = (function(params){
    var mod = function(){
      //...
    };
    return {mod: mod};
  })(params);

外部不能直接訪問模塊內(nèi)部的變量,傳入外部變量后,在內(nèi)部改變它的值也不影響全局。

閉包

CSS3部分新特性

border-radius: 邊框圓角

box-sizing:border-box、content-box

box-shadow: 陰影

background-size

background-origin:背景顯示區(qū)域,content-box、padding-box 或 border-box

text-shadow:文字陰影

word-wrap:文本強(qiáng)制換行

@font-face: 字體

transform:2D,3D轉(zhuǎn)換 ratate、translate、scale、skew

transition:過度

animation:動畫

@keyframes:創(chuàng)建動畫規(guī)則

vue基礎(chǔ) 常用指令

v-if、v-else-if、v-else

v-show

v-on 縮寫@

v-bind

v-model

v-for

v-html

v-text

特性

ref:在元素上添加該屬性,替代原生JavaScript獲取dom操作 this.$refs.name

綁定內(nèi)聯(lián)樣式以及類

以下寫法涉及到了所有樣式以及類名的綁定方式,不詳細(xì)說明了

樣式

:style=“[item.a,item.b]” 
:style="{width:item.value+"px"}"   
:style="{color: activeColor, fontSize: fontSize + "px" }"
:style="item.titlefont"
:style="a<0? "color:red":"color:black""
:style="item.choosetype==3?{width:ul_width+"px"}:"""

:class="{a:item.x==1}"     
:class="[b ,{a:item.x==1}]"    
:class="{a:item.x==1, b:item.x==2}"    
實踐 一、個人中心-生活館頁面

遇到的問題以及學(xué)習(xí)到的知識點(diǎn)

1. 內(nèi)層div的margin-top屬性轉(zhuǎn)移到了外層div上
    
{{constellation}}
{{memberGrade}}
{{memberName}}

原因

當(dāng)兩個垂直外邊距相遇時,它們將形成一個外邊距。合并后的外邊距的高度等于兩個發(fā)生合并的外邊距的高度中的較大者。

當(dāng)一個元素包含在另一個元素中時(如果沒有內(nèi)邊距或邊框把外邊距分隔開),它們的上和/或下外邊距也會發(fā)生合并。

空元素,它有外邊距,但是沒有邊框或填充,則上下邊距會發(fā)生合并

解決方法

給外層元素加內(nèi)邊距邊框

去掉內(nèi)層元素的mqrgin改為直接設(shè)置外層元素padding

2.事件冒泡
  
  let root = document.getElementsByClassName("root")[0];
  let father = document.getElementsByClassName("father")[0];
  let child = document.getElementsByClassName("child")[0];

  root.onclick = function () {
    console.log("root");
  };
  father.onclick = function () {
    console.log("father");
  };
  child.onclick = function () {
    console.log("child");
  };
 

點(diǎn)擊最內(nèi)層div時控制臺依次顯示:child、father、root。按照DOM層次結(jié)構(gòu)像至低向上直到頂端,這就是事件冒泡。

3. 阻止冒泡

實現(xiàn)彈窗,然后點(diǎn)擊空其他任意地方隱藏彈窗

  
  
/*javascript*/
  let father = document.getElementsByClassName("root")[0];
  let child = document.getElementsByClassName("child")[0];

  father.onclick = function () {
    console.log("father");
  };
  child.onclick = function (e) {
    let ev = e||window.event;
    ev.stopPropagation();
  };

  
二、根據(jù)現(xiàn)有項目學(xué)習(xí)編碼規(guī)范以及項目結(jié)構(gòu)并嘗試編寫

*模仿網(wǎng)易云音樂播放器頁面
地址:https://gitee.com/zhangweiqin...

代碼規(guī)范

tab = 2Space

移動端使用rem布局

生命周期排列順序:name、props、components、data、create、mounted、computed、watch、beforedestroy、methods

自定義組件使用小駝峰命名

目錄結(jié)構(gòu)

根組件App.vue

頁面組件:src/view

頁面模塊:src/view/modules

路由:src/router

通用組件:src/components

rem自適應(yīng)布局

先了解:rem、em、px

px:相對長度單位。像素px是相對于顯示器屏幕分辨率而言的。

em:是相對長度單位,是所在元素的字體大小,沒設(shè)置則一層層往上直獲取字體大小至瀏覽器默認(rèn)字體大小。

rem:相對長度大小,相對于根元素字體大小

因為rem大小只和根元素字體大小有關(guān)所以只要根據(jù)設(shè)備設(shè)置不同的根元素大小,然后以相同的rem作單位得到的實際大小是不同的,實現(xiàn)自適應(yīng)。

document.documentElement.style.fontSize = document.documentElement/375*20 + "px";
/*
這樣 如果在寬度為375(iphone6/7/8)的環(huán)境下1rem = 20px.
也可以選擇在寬度為360(大部分1080p屏幕)的環(huán)境下開發(fā)則相應(yīng)的除以360,
根據(jù)設(shè)計稿的寬度不同選擇方便計算的方式。
*/
項目路由

App.vue下目前只有主頁面以及歌單頁面,主界面下兩個子路由:我的音樂、發(fā)現(xiàn),兩個組件:個人設(shè)置頁面、播放控制條。

{path: "/", redirect: "/index/myMusic"}, //重定向
  {//主界面
    path: "/index",
    name: "index",
    component: index,
    children: [
      {//我的音樂
        path: "/index/myMusic",
        name: "myMusic",
        component: myMusic
      }, {//發(fā)現(xiàn)
        path: "/index/findMusic",
        name: "findMusic",
        component: findMusic
      }
    ]
  },
  {//歌單頁面
    path: "/songList",
    name: "songList",
    component: songList
  }

路由的使用以及傳參:(兩種方式)

{
  path: "helloWorld",
  name: helloWorld,
  component: ···
}
this.$router.push({path: "/helloWorld",query: {msg: "hello"}});


this.$router.push({ name: "helloWorld", params: { msg: "hello"}});
 

console.log(this.$route.query);  //{msg:hello},不同的是query傳遞參數(shù)會被附加到url地址上
console.log(this.$route.params); //{msg:hello}
組件的使用以及組件數(shù)據(jù)傳遞

引入組件,兩種加載方式

  1. import userSetting from "@/view/modules/userSetting.vue";
  2. const userSetting = resolve => require(["@/view/modules/userSetting.vue"],resolve);  //懶加載

異步加載,優(yōu)點(diǎn):最大化的實現(xiàn)隨用隨載,減少首頁加載延遲;缺點(diǎn):可能會造成網(wǎng)頁顯示過慢且渲染參差不齊的問題

組件注冊

    //單文件組件
    components: {
      userSetting
    },

數(shù)據(jù)傳遞

父組件->子組件:

  
  
  
  //接收
  export default {
    name: "user-setting",
    props:["data"]
  }

子組件->父組件:

  
  
高級設(shè)置
  
  
  
  methods: {
    recive(msg) {
      console.log(msg);  //msg from son
    }  
  }
Vue.extend()、$mount()

Vue.extend(): 使用基礎(chǔ) Vue 構(gòu)造器,創(chuàng)建一個“子類”。參數(shù)是一個包含組件選項的對象。

  let alertOptions = {
    data:function(){
      return {
        title: title,
        text: text,
      }
    },
    methods:{
      close() {
        resolve("ok");
        dialogClose(vm);
      }
    },
    template: "",
      components: {alert}
  }

  let creator = Vue.extend(alertOptions)

vm.$mount():手動地掛載一個未掛載的實例。

  //掛在到#app下
  new creator().$mount("#app")
  
  //在文檔之外渲染并且隨后掛載
  vm = new creator().$mount()
  dialogContainer.appendChild(vm.$el)

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

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/52035.html

相關(guān)文章

  • Java 初學(xué)者做的第一個微信小程序總結(jié)--關(guān)于Java基礎(chǔ)

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

    mudiyouyou 評論0 收藏0
  • 我是如何從零開始學(xué)習(xí)前端

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

    mykurisu 評論0 收藏0
  • 前端初學(xué)基礎(chǔ)知識 1

    摘要:前端學(xué)習(xí)記錄基礎(chǔ)知識盒模型所有元素可以看作盒子,在中,這一術(shù)語是用來設(shè)計和布局時使用。合并后的外邊距的高度等于兩個發(fā)生合并的外邊距的高度中的較大者。按照層次結(jié)構(gòu)像至低向上直到頂端,這就是事件冒泡。 前端學(xué)習(xí)記錄 week 1 基礎(chǔ)知識 CSS盒模型 所有HTML元素可以看作盒子,在CSS中,box model這一術(shù)語是用來設(shè)計和布局時使用。CSS盒模型本質(zhì)上是一個盒子,封裝周圍的HTM...

    MASAILA 評論0 收藏0
  • 前端初學(xué)基礎(chǔ)知識 1

    摘要:前端學(xué)習(xí)記錄基礎(chǔ)知識盒模型所有元素可以看作盒子,在中,這一術(shù)語是用來設(shè)計和布局時使用。合并后的外邊距的高度等于兩個發(fā)生合并的外邊距的高度中的較大者。按照層次結(jié)構(gòu)像至低向上直到頂端,這就是事件冒泡。 前端學(xué)習(xí)記錄 week 1 基礎(chǔ)知識 CSS盒模型 所有HTML元素可以看作盒子,在CSS中,box model這一術(shù)語是用來設(shè)計和布局時使用。CSS盒模型本質(zhì)上是一個盒子,封裝周圍的HTM...

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

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

    JouyPub 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<