Vue — 第四天(components組件)

問題導入

下面的代碼是一個折疊面板的效果。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><!-- <script src="./vue.js"></script> --><script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script><style>body{background-color: #ccc;}#app{width: 400px;margin: 20px auto;background-color: #fff;border:4px solid blueviolet;border-radius: 1em;box-shadow: 3px 3px 3px rgba(0, 0, 0, .5);padding:1em 2em 2em;}h3{text-align: center;}.title{display: flex;justify-content: space-between;align-items: center;border:1px solid #ccc;padding: 0 1em;}.title h4{line-height: 2;margin:0;}.container{border:1px solid #ccc;padding: 0 1em;}.btn {/* 鼠標改成手的形狀 */cursor: pointer;}</style>
</head>
<body><div id="app"><h3>案例:折疊面板</h3><div><div class="title"><h4>芙蓉樓送辛漸</h4><span class="btn"v-on:click="isVisiable= !isVisiable">{{isVisiable ? '收起' : '展開'}}</span></div><div class="container" v-show="isVisiable">寒雨連江夜入吳,<br>平明送客楚山孤。<br>洛陽親友如相問,<br>一片冰心在玉壺。<br></div></div></div><script>const vm = new Vue({el: "#app",data: {isVisiable: true // 表示當前 內容是否顯示}})</script></body>
</html>

如何實現多個折疊面板

解決方案:

  • 復制代碼
    • 代碼重復 冗余
    • 不利于維護
  • 封裝組件

體驗組件的使用

代碼如下:

<div id="app"><h2>案例:折疊面板</h2><pannel></pannel><pannel></pannel></div></div><script src="./vue.js"></script><script>var vm = new Vue({el: '#app',components: {pannel: {data(){return {isOpen: false}},template: `<div class="box"><div class="title" ><h4>我是標題12</h4><span class="btn" @click="isOpen=!isOpen">{{isOpen ? '收起' : '展開'}} </span>  </div><div class="container" v-show="isOpen">我是內容<br>我是內容</div></div>`}}})</script>

vue-devtools

在使用組件的時候,不好觀察效果,vue官方提供了一個針對vue項目的調試工具。

使用效果

20200514010129016.png

安裝

方法一:chrome瀏覽器應用商店下載

  • https://chrome.google.com/webstore/category/extensions?hl=zh-CN 安裝。

方法二:本地安裝步驟

1、解壓今天資料中的 vue-devtools.zip 文件,注意:解壓到某個不會改動的目錄。

在這里插入圖片描述

2、進入chrome瀏覽的擴展程序

在這里插入圖片描述

3、打開開發者模式

在這里插入圖片描述

4、加載已解壓的擴展程序

在這里插入圖片描述

用vue-devtools 來觀察上的組件

通過瀏覽器打開使用了vue技術的網頁

在這里插入圖片描述

在這里插入圖片描述

學習組件的使用

理解組件

vue組件是可復用的 Vue 實例,它可以包含獨立的HTML結構,CSS樣式,JS代碼。它可以把一個完整的頁面,根據界面功能拆分成若干組件。

js模塊,獨立的一個js文件,提供js邏輯,函數。

組件底層是什么?

  • 組件本質上是一個vue實例,但是寫法和vue實例不同,new Vue({//配置對象})
  • 在Vue實例中 new Vue({components:{//組件}})
  • 組件有配置對象:
    • 不包含 el 選項,el是指定vue實例(或者稱為根組件)管理的視圖容器。
    • 通過 template選項,指定html結構容器,每個組件模板有且只有一個根元素。
    • data數據項必須是一個函數,通過它的返回值來設置數據。
  • 配置選項:data methods watcher filters directives computed created …(創建組件,創建vue實例)

定義格式

new Vue({el: '#app'data: {},components: {// 組件本質上是一個vue實例,但是寫法和vue實例不同組件名1: { data () { return {數據項}}, 	// 必須是一個函數template: `<div>模板</div>`,	// 約定模板props:[], // 從父組件中獲取數據methods:{},watcher:{},filters:{},directives:{},computed:{},created(){},components:{} // 繼續定義子組件...},組件名2: {data () { return {數據項}},template: `<div>模板</div>`,props:[], // 從父組件中獲取數據methods:{}...}}
})

組件本質上是一個vue實例,但是在寫法上和vue實例稍有不同:

  • 不包含 el 選項,el是指定vue實例(或者稱為根組件)管理的視圖容器。
  • 通過 template選項,指定html結構容器,每個組件模板有且只有一個根元素。
  • data數據項必須是一個函數,這個函數必須返回一個對象,在這個對象中設置數據項。

使用格式

在模板中使用,就像使用dom標簽一樣。

<子組件1></子組件1>

基本示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title>
</head>
<body><div id="app"><h3>學習組件的使用</h3><city-qj></city-qj><br><comp1></comp1><comp1></comp1><br></div><script src="./vue.js"></script><script>// 1. 組件是什么//  組件是可復用的Vue實例。// 2. 如何定義// new Vue ({//     el:,////     components: {//         // 定義組件//         // 組件名1 : 對組件的配置項,它是一個對象.//         //          在new Vue({ }) 可以寫的配置項,在組件中基本上都可以用//         comp1: {//             // 組件的data與vue實例有一點區別:它必須是一個函數,通過這個函數來返回對象,//             // 在對象中定義自己的數據項//             data: function() { //                 return { //                     // 組件自己的數據項//                 }//             },//             // 用來約定組件的模板。它等價于vue實例的 el//             // 它只能一個根元素//             // template: `<div></div><h1></h1>` // 不ok//             template: `<div></div>` // ok//             watch:,//             computed:,//             filters,//             directives,//             components,//         }//     }// })// 3. 如何使用//    像使用dom標簽一樣使用,標簽就是組件名// 要點:// 1.  數據。//     組件是自成體系,它的數據只能自己用,在其它組件不能使用;它不能直接使用vue實例中的數據//     格式:data(){ return {} }// 2. 視圖。由template決定。// 3. methods//    與vue實例中的一樣,定義,去調用。//    它只能調用自己的定義的methodsconst vm = new Vue({el: '#app',data: {name: 'js'},methods: {f1 () {}},components: {"city-qj": {// 定義數據:只能在當前組件中使用data() {return {teC: '小龍蝦'}},// 設置視圖template: `<div><h4>城市:潛江</h4><p>{{teC}}</p><button @click="hClick">點我</button> </div>`,// 定義方法:只能在當前組件中使用methods: {hClick () {// 它的this是組件自己console.log(this.teC)}}},comp1: {template: '<div><h1>comp1組件</h1></div>'}}})</script>
</body>
</html>

組件名和父子組件

<div id="app"><MyComp1></MyComp1><myComp1></myComp1><my-comp1></my-comp1>
</div>
<script src="./vue.js"></script>
<script>new Vue({el: '#app',components: {MyComp1:{template:`<div>子組件:MyComp1 大駝峰</div>`},myComp1:{template:`<div>子組件:myComp1 小駝峰</div>`},mycomp1:{template:`<div>子組件:mycomp1 純小寫</div>`}}});
</script>
  • 父子組件

    • 如果組件A在組件B中被調用,則稱組件B是組件A的父組件,而組件A是組件B的子組件
  • 組件名:

    • 在定義組件時,組件名可以是小駝峰(myCom1),大駝峰的寫法(MyCom1)
    • 在模板中使用組件時,全采用全小寫的烤串寫法(my-com1)

組件的嵌套

一個組件內部,還可以繼續定義,使用組件。

<div id="app"><my-comp1></my-comp1>
</div>
<script src="./vue.js"></script>
<script>new Vue({el: '#app',components: {myComp1:{template:`<div>子組件 <abcd></abcd></div>`,components:{abcd:{template:`<h5>ABCD</h5>`}}}}});
</script>

小結

vue中的組件系統讓我們可以像搭積木一樣,通過不同的組件來建立整個頁面。

在這里插入圖片描述

父子組件傳值-從數據從父組件傳給子組件

在這里插入圖片描述

基本步驟

  • 在父組件中使用子組件時,給子組件傳入自定義屬性;

  • 子組件內部聲明props來接收屬性。

原則:你情我愿

在這里插入圖片描述

示例

<div><com1 abc="vue" :myMsg="info"></com1>
</div>components:{com1:{template: `<div>子組件:{{myMsg}}</div>`,// props 用來接收使用組件所綁定的屬性數據,屬性的名字就是數據的字段名稱// props: ['abc'] 接收到了使用組件綁定的abc屬性屬性,使用vue實例即可訪問,this.abc // 此時的 this.myMsg 其實就是父組件傳遞給子組件的數據props: ['abc','myMsg']
})
  • 只讀不能修改
  • 父組件中修改了值,也會影響子組件中的Props值

案例-折疊面板

<style>body{background-color: #eee;}#app{background-color:#fff;width: 500px;margin: 50px auto;text-align: center;box-shadow: 3px 3px 3px rgba(0 , 0, 0, 0.5);padding:1em 2em;}.title {line-height: 1;display: flex;justify-content: space-between;align-items: center;}.btn{ cursor: pointer;}.container {border: 1px solid #ccc;padding: 1em;  }</style>
</head>
<body><div id="app"><h2>案例:折疊面板</h2><pannel title="標題1" content="內容1"></pannel><pannel title="標題2" content="內容2"></pannel></div></div><script src="./vue.js"></script><script>const pannel = {props: ['title','content'],data(){return {isOpen: false}},template: `<div class="box"><div class="title" ><h4>{{title}}</h4><span class="btn" @click="isOpen=!isOpen">{{isOpen ? '收起' : '展開'}} </span>  </div><div class="container" v-show="isOpen">{{content}}</div></div>`}var vm = new Vue({el: '#app',components: {pannel: pannel}})</script>

組件中的插槽

對于前面的折疊面板組件,如果使用組件時,希望傳入一些比較復雜的內容,讓每個折疊面板的內容區域都不一樣(不僅是數據不同,而是整體結構都不同),則可以使用插槽技術。

image-20200513224752503

定義格式

在子組件的模板中通過slot預留出來區域,充當占位符的功能。

template: `其它元素....<slot></slot>其它元素....<slot name="插槽1"></slot>其它元素...<slot name="插槽2"></slot>`

如果slot有name屬性,則它是叫具名插槽,否則叫默認插槽

技巧: 如果只有一個插槽,則不需要寫插槽名。

使用格式

在使用子組件時,傳入自定義的內容即可。

單個插槽

如果子組件上只有一個默認插槽。

<子組件><div>任意內容....</div></子組件>

多個插槽

如果子組件上定義了多個插槽,則要對應標記出slot的名字。

<子組件><div>任意內容.將會填充默認插槽的位置...</div><div slot='插槽名1'>任意內容.將會填充插槽1的位置...</div><div slot='插槽名2'>任意內容.將會填充插槽2的位置...</div>
</子組件>

默認插槽使用示例

<div id="app"><com1></com1><com1><h1>我是父組件中來填充默認插槽的內容</h1></com1>
</div>
<script>var vm = new Vue({el: '#app',components: {com1: {template: `<div>我是子組件com1,<slot>這里默認插件的默認內容</slot> </div>`}}})
</script>

具名插槽使用示例

<div id="app"><com1></com1><com1><h1 slot="slot1">我是父組件中來填充具名插槽的內容</h1></com1>
</div>
<script>var vm = new Vue({el: '#app',components: {com1: {template: `<div>我是子組件com1,
<slot>這里默認插件的默認內容</slot>
<slot name="slot1"></slot></div>`}}})
</script>

案例:用插槽來改進折疊面板

允許用戶自行定義折疊面板中content區域的內容。

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><title>Document</title><script src="./vue.js"></script><!-- <script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script> --><style>body{background-color: #ccc;}#app{width: 400px;margin: 20px auto;background-color: #fff;border:4px solid blueviolet;border-radius: 1em;box-shadow: 3px 3px 3px rgba(0, 0, 0, .5);padding:1em 2em 2em;}h3{text-align: center;}.title{display: flex;justify-content: space-between;align-items: center;border:1px solid #ccc;padding: 0 1em;}.title h4{line-height: 2;margin:0;}.container{border:1px solid #ccc;padding: 0 1em;}.btn {/* 鼠標改成手的形狀 */cursor: pointer;}</style>
</head>
<body><div id="app"><h3>案例:折疊面板-插槽</h3><my-pannel tit="標題1"><table><tr><td>1</td><td>2</td><td>3</td></tr></table></my-pannel><my-pannel tit="標題2"><img src="http://img3m9.ddimg.cn/32/4/28530149-1_w_7.jpg"><!-- 圖片 --></my-pannel><my-pannel tit="標題3"><div>寒雨連江夜入吳,<br>平明送客楚山孤。<br>洛陽親友如相問,<br>一片冰心在玉壺。<br></div></my-pannel></div><script>// 對于折疊面板:// 特點://   - 標題一般會比較簡單,所以使用props傳值//   - 內容可能比較復雜,通過插槽技術允許用戶傳入任意內容//     由于只需要一個插槽,所以就直接使用默認插槽就行。// 下面是用組件來解決的const vm = new Vue({el: "#app",components: {// 定義的組件的名字MyPannel: {data () {return {isVisiable: true, // 表示當前 內容是否顯示}},props:['tit'],template: `<div><div class="title"><h4>{{tit}}</h4><span class="btn"v-on:click="isVisiable= !isVisiable">{{isVisiable ? '收起' : '展開'}}</span></div><div class="container" v-show="isVisiable"><slot></slot></div></div>`}}})</script></body>
</html>

子組件傳值給父組件

背景:

在子組件中需要向父組件傳值

在這里插入圖片描述

原理

  • 自定義事件 + emit

步驟

  • 在父組件中:使用子組件時,在子組件上添加自定義事件監聽

    <子組件 @自定義事件名1="處理事件的函數1"@自定義事件名2="處理事件的函數2"></子組件>
    
  • 在子組件中:在某個時刻,通過$emit向父組件傳遞事件,并附加參數

    this.$emit(自定義事件名1,附加參數)
    

示例

<div id="app"><comp1 @gameover1="hGameover1" @over="hover"></comp1>
</div>
methods: {hover (param) {console.log(param)}
},
components:{comp1: {template:`<div> <button @click="$emit('gameover')"> 發消息 </button><button @click="hClick"> 發消息 </button></button></div>`,methods: {hclick () {this.$emit('over', {a:1,b:2})}}}
}

案例-測試題

在這里插入圖片描述
在這里插入圖片描述
參考代碼:

<!DOCTYPE html>
<html lang="zh"><head><meta charset="UTF-8" /><meta name="viewport" content="width=device-width, initial-scale=1.0" /><title>Document</title><script src="https://cdn.bootcdn.net/ajax/libs/vue/2.6.11/vue.js"></script><style>body {background-color: #eee;}#app {background-color: #fff;width: 500px;margin: 50px auto;box-shadow: 3px 3px 3px rgba(0, 0, 0, 0.5);padding: 2em;}.box {padding: 1em;border: 1px solid #ccc;margin: 1em;}.subject{margin:5px;padding:5px;font-size: 20px;}.subject span {display:inline-block;text-align: center;width: 20px;}.subject input {width: 50px;height: 20px;}.right{color:green}.error{color:red;}.undo{color:#ccc;}</style>
</head><body><div id="app"><h2>測試題</h2><subject v-for="idx in count" :idx="idx" @submit='hGetAns'></subject><div><flag v-for="(item,idx) in result":idx="item.idx" :ans="item.ans"></flag></div></div><script>var vm = new Vue({data: {count:5,result:[]},created () {for(var i = 1; i<= this.count;i++) {this.result.push({idx:i,ans:'未完成'})}},components: {flag: {props:["idx","ans"],computed: {cCla () {return this.ans ==='正確' ? 'right': (this.ans==='錯誤'?'error':'undo')}},template: `<span :class="cCla">{{idx}}: {{ans}}</span>`},subject: {props:["idx"],template: `<div class="subject"><span>{{num1}}</span>+<span>{{num2}}</span> = <input v-model.trim.number="result" :disabled="isSubmit"/><button :disabled="isSubmit" @click="hSubmit">提交</button></div>`,data:function() { return {num1: Math.ceil(Math.random()*10),num2: Math.ceil(Math.random()*10),result: '',isSubmit:false}},methods: {hSubmit () {let rs =  this.result == (this.num1 + this.num2)this.isSubmit = truethis.$emit('submit', {ans:rs,idx:this.idx})}}}},methods: {hGetAns (result) {// console.log(result)const rs = this.result.find(it => it.idx === result.idx)rs.ans = result.ans ? '正確' : '錯誤'}}}).$mount('#app')</script>
</body></html>

全局組件

在vue實例中定義的組件稱為局部組件,它只能當前vue實例中使用;

在vue實例之外的定義的組件稱為全局組件,它可以在多個vue實例中使用,方便封裝組件共享給他人使用。

定義格式

Vue.component('組件名稱','組件配置對象')

這里的組件配置對象與上述局部組件的方法一樣。

使用格式

與局部組件一致。

示例

  <div id="app"><!-- 注冊組件時候使用的組件名稱,在視圖中使用就是自定義標簽的名稱 --><!-- 注意:組件的名稱不能和原生html標簽重名 --><com-article></com-article></div><script src="./vue.js"></script><script>// 全局注冊組件Vue.component('com-article', {// 組件配置對象,和vue實例的配置對象基本一致,沒有el選項// template選項必須指定,當前組件管理的視圖,需要有一個根標簽。// 在模板字符中,可以使用插值表達式,和任意指令,但是只能使用當前組件數據和函數。template: '<div>{{count}} <button @click="add()">自增1</button></div>',// 聲明數據,使用的還是data,但是是一個函數,函數的返回值才是組件的數據,必須是對象。data () {return {count: 100}},// 可以使用任意配置選項methods: {add () {this.count ++ }}})// 根實例const vm = new Vue({el: '#app'})</script>

件稱為局部組件,它只能當前vue實例中使用;

在vue實例之外的定義的組件稱為全局組件,它可以在多個vue實例中使用,方便封裝組件共享給他人使用。

定義格式

Vue.component('組件名稱','組件配置對象')

這里的組件配置對象與上述局部組件的方法一樣。

使用格式

與局部組件一致。

示例

  <div id="app"><!-- 注冊組件時候使用的組件名稱,在視圖中使用就是自定義標簽的名稱 --><!-- 注意:組件的名稱不能和原生html標簽重名 --><com-article></com-article></div><script src="./vue.js"></script><script>// 全局注冊組件Vue.component('com-article', {// 組件配置對象,和vue實例的配置對象基本一致,沒有el選項// template選項必須指定,當前組件管理的視圖,需要有一個根標簽。// 在模板字符中,可以使用插值表達式,和任意指令,但是只能使用當前組件數據和函數。template: '<div>{{count}} <button @click="add()">自增1</button></div>',// 聲明數據,使用的還是data,但是是一個函數,函數的返回值才是組件的數據,必須是對象。data () {return {count: 100}},// 可以使用任意配置選項methods: {add () {this.count ++ }}})// 根實例const vm = new Vue({el: '#app'})</script>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247969.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247969.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247969.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

iOS開發常用的RGB色值和宏

iOS中RGB常用的色值,同時可將對顏色的設置定義成宏,方便開發應用,如: // name 顏色相關 // 參數格式為&#xff1a;0xFFFFFF #define kColorWithRGB(rgbValue) \ [UIColor colorWithRed:((float)((rgbValue & 0xFF0000) >> 16)) / 255.0 \ …

防火墻綜合實驗

防火墻技術綜合實驗 一、實驗目的&#xff1a;本次實驗是將多種訪問控制列表以及防火墻部分的知識做一個匯總 二、實驗內容 A&#xff1a;Established控制列表 拓撲圖 配置步驟 1:配置各端口ip地址&#xff0c;配置登陸密碼 R4: 登陸賬號&#xff1a;ys 密碼&#xff1a;123 2:…

iOS獲取當前設備型號等信息總結 包含iPhone7和iPhone7P

#include <sys/types.h> #include <sys/sysctl.h>//獲得設備型號(NSString *)getCurrentDeviceModel {int mib[2];size_t len;char *machine;mib[0] CTL_HW;mib[1] HW_MACHINE;sysctl(mib, 2, NULL, &len, NULL, 0);machine malloc(len);sysctl(mib, 2, mac…

Vue — 第五天(路由)

前端路由 問題導入 在前面完成的資產管理案例中&#xff0c; 我們是把列表區域和添加表單區域實現在了一個區域。當頁面功能比較復雜時&#xff0c;我們需要它們拆分開來&#xff1a;一個頁面中只顯示一個區域。 一個比較直觀的解決方案是把它們分別做成兩個獨立的網頁文件&…

獲取網絡時間,在不同時間觸發事件

<!DOCTYPE html><html lang"en"><head>   <meta charset"UTF-8">   <title>時間事件</title></head><body></body><script> var int_timenew Date();//使用Date獲取網絡時間;   functi…

iOS獲取手機的IP地址

1.添加這五個庫&#xff08;在聯網的情況下&#xff09; #import <sys/socket.h> #import <sys/sockio.h> #import <sys/ioctl.h> #import <net/if.h> #import <arpa/inet.h>2.寫一個方法 - (NSString *)getDeviceIPIpAddresses {int sockfd soc…

Vue — 第六天(vue-cli-介紹)

vue-cli-介紹 vue-cli是官方提供的開發vue項目的腳手架工具。 腳手架是為了保證各施工過程順利進行而搭設的工作平臺。 在開發過程中&#xff0c;腳手架工具是有用的&#xff0c;開發完成&#xff08;項目上線&#xff09;&#xff0c;它就沒有用了。 vue-cli可以提供基于vue項…

python安裝pyautogui遇到的gbk異常解決

一開始使用pip install pyautogui,報錯,大概信息如下: Collecting pygetwindow (from pyautogui) Using cached https://files.pythonhosted.org/packages/01/ed/56d4a369c6e18f6b239d9ef37b3222ba308bfebf949571b2611ff7d64f1d/PyGetWindow-0.0.4.tar.gz ERROR: Complete …

NSString的各種用法總結(創建、截取、判斷比較、轉化數據類型、拼接、替換、添加、追加、讀取、寫入、刪去、改變)

1、創建字符串1&#xff09;NSSring *str ”adf”;2&#xff09;NSString *str1 [NSString new];NSString *str2 [[NSString alloc] initWithString:”adf”]; &#xff08;等同于1&#xff09;4&#xff09;NSString *str3 [NSString stringWithFormat:”name is %”,”小…

Vue — 第七天(vue-cli-案例)

資料獲取地址&#xff1a; github: https://gitee.com/wang_yu5201314/VUE_vuecli SSH&#xff1a; gitgitee.com:wang_yu5201314/VUE_vuecli.git hero案例-項目介紹 功能介紹&#xff1a; 三個模塊 英雄列表(只做這個)裝備列表技能列表 英雄列表 列表組件刪除功能添加組件編…

postman測試工具

做文件上傳測試的時候可以選擇輸入方式為文件 做文件下載測試的時候&#xff0c;可以選擇 轉載于:https://www.cnblogs.com/thesun/p/10853226.html

webpack — 概述介紹

webpack概述 webpack是一個流行的前端項目構建工具&#xff08;打包工具&#xff09;&#xff0c;可以解決當前web 開發中所面臨的困境。 webpack提供了友好的模塊化支持&#xff0c;以及代碼壓縮混淆、處理js兼容問題、性能優化等強大的功能&#xff0c;從而讓程序員把工作的…

徹底解決iOS項目中 _OBJC_CLASS_$_XXXService, referenced from: 的類似問題

這是大家熟悉的開發過程中可能遇到的問題 這是提交源碼到appStore不支持64位設備的提示 本人在提交項目到appStore時發生的的錯誤&#xff0c;提示必須要支持64的設備&#xff0c;然后自己趕緊進行相關的適應&#xff0c;出現了類似標題的問題&#xff0c;解決方法如下: 1、…

THUPCCTSAPIO2019:Far Away

流水賬~ THUPC nmdwsmduliu&#xff01; THUPC Day -INF~Day -2 大概就是自己做題和每周兩次的考試&#xff0c;lsy和fcw兩個外校的來吊打我們qwqqq THUPC Day -1 Z208 長沙->北京 在車上看gzy/tjj/xzz打擺&#xff1f; THUPC Day 0 從火車站出來做地鐵的時候和tjj做反了可海…

UIDocumentInteractionController之程序間文檔共享

iOS中的沙盒可以讓平臺更加的安全&#xff0c;這也是沙盒給用戶帶來的最主要好處。不過由于沙盒的嚴格限制&#xff0c;導致程序之間共享數據比較麻煩。一般在程序間共享文檔可以通過UIDocumentInteractionController類實現通訊。它支持在你的app中用其他app預覽和顯示文檔。同…

webpack — 概述 (2)

webpack學前必備 webpack中文網 webpack官網 1. Webpack 介紹 Webpack 是什么?? (面試) 前端模塊化打包工具WebPack可以看做是模塊打包機&#xff1a;它做的事情是&#xff0c;分析你的項目結構&#xff0c;找到JavaScript模塊、其它的一些瀏覽器不能直接運行的拓展語言…

VUE安裝依賴命令總結

以下是個人用到過的vue安裝包以及依賴命令&#xff08;在接觸項目時&#xff0c;有未寫到的會隨時補充&#xff09; 1. vuex 作用&#xff1a;vue狀態管理 安裝&#xff1a;npm install vuex --save 開源地址&#xff1a;github 文檔&#xff1a;https://vuex.vuejs.org/zh/ 2.…

SQL總結(快速參考)

SQL 語句 語句 語法 AND / OR SELECT column_name(s) FROM table_name WHERE condition AND|OR condition ALTER TABLE (add column) ALTER TABLE table_name ADD column_name datatype ALTER TABLE (drop column) ALTER TABLE table_name DROP COLUMN column_name AS (alias…

Vue -項目創建(rem適配項的設置)

3. 項目rem 配置 ####3.1 rem介紹 小米、京東、攜程 m.mi.com/m.jd.com/m.ctrp.com 核心原理 1rem 當前 html 的fontSize也就是說 : rem是相當于根元素的字體大小// 使用div {width:2rem;height:2rem}// 媒體查詢media (min-width:320px) {html {font-size : 20px}}media (mi…

c#基礎知識梳理(四)

上期回顧 - https://www.cnblogs.com/liu-jinxin/p/10826971.html 一、類 當你定義一個類時&#xff0c;你定義了一個數據類型的藍圖。這實際上并沒有定義任何的數據&#xff0c;但它定義了類的名稱意味著什么&#xff0c;也就是說&#xff0c;類的對象由什么組成及在這個對象…