I. HTMLとCSS
htmlの1行目!doctypeは何のため?
DOCTYPEドキュメントタイプの略称である。
マークアップ言語の文書型宣言で、現在記述されているHTMLのバージョンをブラウザに知らせる。
vueAPPの適応はどのように書くのですか?
答え:rem親ボックスの子ボックス、水平方向のセンタリング方法
rem
子ボックスの親ボックスが浮いている結果は何ですか?
オプション1
1) フローティング要素:要素の幅を設定する
position:relative
フロート方向のオフセット(left/right) 50%
marginをfloatの方向に要素の幅の半分に設定する。 * (-1)
2) 要素の絶対配置:絶対親フェーズの息子
要素の幅を設定する
オフセットが50%
要素の幅の半分に設定されたオフセット方向の外側のマージン。 * (-1)
3) 要素の絶対配置:絶対親フェーズの息子
要素の幅を設定する
左右のオフセットを設定する0
左右のマージンを設定するauto
4) フレックスを使う:追加するdisplay:flex
スピンドルの配置justify-content: center
子要素を横軸に配置する方法align-items: center
プログラムII
1) 要素の絶対配置:絶対親フェーズの息子
左の子要素は50%
transformX(-50%)
なぜフロートをクリアする必要があるのか、フロートをクリアする方法
親要素の高さ0が行になる 子要素が親要素の下に浮く
親ボックス内にイメージやテキストがあり、floatがクリアされない場合はどうなりますか?
ドキュメントフローから要素をフローティングさせると、後ろにある要素のレイアウトに影響を与える。
これらの問題を解決するためには、この時点でエレメント内のフロートをクリアする必要がある。
フロートをクリアすることの影響は?
> 1.エクストラタグメソッド
フローティング要素の最後に空のタグを追加する<div style="clear:both"> </div>
> 2.親がオーバーフロー属性を追加する方法
親にオーバーフローを追加することと、親にオーバーフローを追加することの違いは?hidden | auto | scroll 達成できる
> 3. floatをクリアするためにafter疑似要素を使用する
.clearfix: after {
content: "";
display: block;
height: 0;
clear: both;
visibility: hidden; //ある要素が非表示になっても、ページ内で同じ位置を占めている場合はどうなるのか?
}
.clearfix { *zoom: 1; }
> 4.ダブル擬似要素を使用してフロートをクリアする
.clearfix:before, .clearfix:after{
content: "";
display: table;
}
.clearfix:after {
clear: both;
}
.clearfix {*zoom: 1; }
ポジショニングのプロパティは何ですか?相対位置決めとは、何の位置決めに対する相対位置決めですか?
サブボックス、テキスト、イメージは1行になり、テキストはインライン要素、imgはインラインブロックになる。
サブボックスは一番上にある
親ボックスの右端に子ボックスを配置するには?
float、ポジショニングを使用絶対位置決めを使用して2つのdiv、カスケード関係を設定し、何を設定する必要がありますか?
z-indexインライン要素とインラインブロック要素の違いは何ですか?インラインブロック要素は、同じ行に表示されたときにデフォルトのギャップがあります。
= ポジショニングパターン +
static top | bottom | left | right
相対相対
絶対子绝父相
固定
インライン要素とブロック要素とは何ですか?その違いは何ですか?
float、positioningを使用する
テキストが自動的に改行されないようにするには?超える部分にアポストロフィを表示したい
z-index
ラベルの役割
インライン要素:左から右に配置され、行を占有しない。無効の上下の距離の幅、高さ、マージンを設定する
ブロックレベル要素:独立した行
インラインブロックレベルの要素:インラインブロックレベルの共通の特性を持つ、行の幅と高さを設定することができますに比べて、自動的に改行されない。
1)ギャップが発生する理由は、実際には、改行の影響の間に行タグ要素、行ブロック要素である。
改行の問題が解決すれば、ギャップの問題も解決する。
2) font-size 0
14.タイトルとaltの違いは何ですか?
インライン要素とは何か?a b span img input select strong
ブロックレベル要素とは: div ul ol li dl dt dd h1 h2 h3 h4... p
空の要素br hr img input link meta
インライン要素:左から右に配置され、行を占有しない。無効の上下の距離の幅、高さ、マージンを設定する
ブロックレベル要素:独立した行
インラインブロックレベルの要素:自動的に改行されませんが、行に比べ、行のブロックレベルの共通の特性を持つ、幅と高さを設定することができる。
dispaly:none;とvisibility:hiddenの違い
div{
width:200px;
white-space:nowrap; /*強制的に改行されない*/
overflow:hidden;
text-overflow:ellipsis;
}
新しいh5タグとは何ですか?なぜセマンティック化を強化する必要があるのですか?
labelタグを使ってフォームコントロール間の関係を定義する
ユーザーがタグを選択すると、ブラウザは自動的に関連するフォームコントロールにフォーカスを移す。
cssのアニメーション機能はjsでも実現できますが、なぜcssで実現するのですか?
title: urlとページが読み込まれるときの違いは何か、その間に何が起こるのか?
alt: <img>は、イメージを読み込むことができない場合に使用される固有の属性である。
キャンバス描画は理解していますか?
display: none;レンダリングツリーから要素を完全に消し、レンダリング時にスペースを占有しないようにする。
visibility:hidden; 要素はレンダー・ツリーから消えることはなく、スペースを占有し続ける。
フォームラベルは
フォームタグは、次のようなフォーム以外のフィールド要素の間に表示することができます。
構造に従って
<header> //
<footer> //
<nav> //
<section> // httpとhttpsの違いは何か?
<article> // 記事の定義
<aside> // ページコンテンツ以外のコンテンツを定義する
CSSレンダリングに頼るな、ページ構造はまだ明確だ;
SEOフレンドリーにする
開発と保守が容易である;
JavaScript
js 基本データ型
DOMを操作したり、ページのアニメーションを使用したりすると、JavaScriptの効率が悪くなり、ブラウザが再配置や再描画を実行し続けることになる。
JSシミュレーションアニメーションの代わりにCSS3アニメーションを使用する利点は何か:
1.メインJSスレッドを占有しない
2.ハードウェア・アクセラレーションを使用できる
3.ブラウザはアニメーションを最適化できる
4.CSS3httpとhttpsの違いは何か?
5.CSS2Dmarginとleft,topを使用したjsシミュレーションよりもマトリックスアニメーションの方が効率的か?
データ型の決定方法
<canvas> タグはグラフィカルなコンテナであり、グラフィックを描画するにはスクリプトを使用しなければならない。
Canvasは、パス、ボックス、円、文字、イメージの追加など、さまざまな方法で使用できる。
ES6内部のconst let varの違い?
フォームにはinput、text、radio、check、textareaなどがある。
constで定義されたオブジェクトは変更できますか?
Undefined Null Boolean Number String Symbol
グローバルに定義した場合のletとvarの違いは?
typeOf基本的なデータ型
instanceOfデータ型を引用する
thisポインティングの問題?
let
1. let変数の繰り返し宣言を許可しないが、varは許可する。
2. let変数のリフティングはなく、プリパース時に解析されない。
3. 宣言された変数は、letコマンドのあるコードブロックにのみ存在する。{}
const
1. 定数には必ず値を代入しなければならない。
2. 定数の値は変更できない
3. 定数を繰り返し宣言したり、エラーを報告することはできない
thisのポインティングを変更するには?
const参照型を指す場合、ポインタが指すアドレスは変更できないが、指すアドレスの内容は変更できる。
const PI = 3.14
PI = 3 //
const P = {name: 'wws', age: '25'}
P.name = 'sss' //アドレスの内容を変更できる
ES6の新機能は何ですか?
letで定義された変数のグローバル宣言とウィンドウプロパティの違いは?
var関数のスコープは関数スコープ、レッツのスコープはブロックスコープである。
同じスコープ内で、同じ名前の変数を繰り返し宣言してはいけない。
配列内部の走査メソッドは何ですか?
通常の関数はwindow
オブジェクトのメソッドとインスタンスオブジェクトの違いは?
コンストラクタ メソッドが属するオブジェクト
イベント関数のバインディング イベントオブジェクトのバインディング
タイマー機能 window
関数の即時実行 window
配列に対する一般的な操作
アロー関数
その中で変数を宣言する
apply call bind
分割とスライスの違い
1)letとconstキーワード
2)オブジェクトと配列の分解
3)オブジェクトのスーパークラス
4)for...of for...in
5)テンプレート文字列``
6)アロー関数
7)関数パラメータのデフォルト値
8)ES6
クロージャとは? クロージャの利点と欠点は? letの実装方法は? クロージャの利点と欠点は何ですか?
for
forEach
map
filter
some
every
reduce
for of
find
findIndex
Native jsで継承はどのように実装されていますか?
push():配列の最後に要素を追加し、配列の長さを返す。
pop():パラメータを受け取らずに配列の末尾の要素を削除し、削除された要素を返す。
unshift元の配列の先頭にパラメータを追加し、配列の長さを返す。
shift()配列の最初の要素を削除する」と「最初の要素の値を返す」の違いは?
concat() メソッド:2つ以上の配列を接続し、新しい配列を返すために使用される
join() メソッド:配列の全要素を文字列にするために使われる。要素は指定した区切り文字で区切られる。文字列を返す。
reverse() 配列の要素の順序を逆にするメソッドは?
sort(orderfunction)指定したパラメータで配列をソートする」の違いは?
slice() メソッド:既存の配列から選択した要素を返すことができる。
splice() メソッド/配列からの追加/項目を削除し、削除された項目を返す
継承を実装するためにES6に追加された新しいクラスとメソッドは何ですか?
spliceを追加することの違いは何か?/項目を削除し、削除された項目を返す
arrayObject.splice(index, howmany, [item1, ... itemX])
index必須、整数、追加必須/アイテムの削除位置、負の数、最後から数える
howmany必須、削除する項目の数、0は要素を削除しないことを意味する
item1...itemX 配列に新しい項目が追加される
1)新しい配列を作成し、そこに要素を追加する。
var arr = new Array(2)
arr[0] = 'Tom'
arr[1] = 'John'
arr[2] = 'Any'
arr.splice(2, 0, 'My')
2)配列arrと配列arrと配列arrと配列arrと配列arrと配列arrと配列arrと配列arrと配列arrの違いは?
var arr = ['Tom', 'John', 'Sam', 'Any']
arr.splice(1, 1)
slice() 既存の配列から選択した要素を返す
arrayObject.slice(start, end) 戻り値 新しい配列
start 必須、ピッキング開始、負の数、最後から数える。
end
splice()メソッドとスライスメソッドは元の配列を直接変更するが、スライスは変更しない
アロー関数と通常の関数の違いは何ですか?
クロージャとは、他の関数のスコープ内の変数にアクセスできる関数のことである。
スコープ、クロージャの本質は、ブリッジに接続された関数の内側と外側の関数である
役割は変数のスコープを拡張することである
1:変数は長い間メモリに存在する;
2:グローバル変数の汚染を避ける
3:プライベートメンバーの存在
: 常駐メモリ 使用するメモリ量を増やす 不適切な使用はメモリリークを引き起こす可能性がある。
for(let i = 0 ; i < 10 ; i++){
setTimeout(()=>{
console.log(i); // 0 - 9
console.log(this.i); // undefined
});
}
クロスドメイン、jsonpの原則を実現するには?メソッドとは何ですか?
ES6extends継承はないが、コンストラクタを通して行うことができる。 + 継承を実現するためのプロトタイプ・オブジェクト・シミュレーション
1) 属性の継承
function Father(uname, age){
this.uname = uname;
this.age = age;
}
function Son(uname, age, score){
Father.call(this, uname, age){ // this Son
this.score = score;
}
}
var son = new Son(' ', );
console.log(son)
2) 継承メソッド
function Father(uname, age){
this.uname = uname;
this.age = age
}
Father.prototype.money = function(){
console.log(1000)
}
function Son(uname, age, score){
Father.call(this, uname, age)
this.score = score
}
Son.prototype = new Father()
Son.prototype.constructor = Son
Son.prototype.exam = function(){
console.log(' ')
}
var son = new Son(' ', 18, 20)
どのような方法のjsローカルストレージ? /ストレージのどのような種類?違いは何ですか?
継承を実現するためにclassとextendsを追加した
1)親クラスのコンストラクタを呼び出すことと、親クラスのコンストラクタを呼び出すことの違いは何か?
class Father{
constructor(x, y){
this.x = x;
this.y = y;
}
sum() {
console.log(this.x + this.y)
}
}
class Son extends Father {
constructor(x, y){
super(); // 親クラスのコンストラクタを呼び出すことと、親クラスのコンストラクタを呼び出すことの違いは何か?
}
}
var Son = new Son(1, 2)
Son.sum()
2) 親クラスの共通メソッドを呼び出すことと、親クラスの共通メソッドを呼び出すことの違いは?
class Father{
say() {
return ' '
}
}
class Son extends Father {
say() {
return super.say() + ' ';
}
}
var demo = new Son();
console.log(demo.say())
3) サブクラスは親クラスからメソッドを継承する
class Father{ // 親クラスの追加メソッド
constructor(x, y){
this.x = x;
this.y = y;
}
sum() {
console.log(this.x + this.y)
}
}
class Son{ //サブクラスは親クラスの加算メソッドを継承し、減算メソッドを継承する。
constructor(x, y){
super(x, y); // superこのメソッドを使用すると、エラーが報告される
this.x = x;
this.y = y;
}
substract() {
console.log(this.x - this.y)
}
}
var son = new Son(5, 3)
son.substract()
son.sum()
セッション内のクッキーは理解していますか?
アロー関数
this
newコンストラクタが使えない
バインドできないarguments
そのコンテキストのthis値を取得し、独自のthis値として使用する。
アロー関数はプロトタイプ属性を持たない
どのように強調解除の配列を与えるために
:httpとhttpsの違いは何か?
クロスドメイン:ブラウザがスクリプトを実行するとき 同じソースかどうかをチェックし、スクリプトの同じソースだけが実行される、クロスドメインである同じソースでない場合
クロスドメインリクエストの実現方法:
1、jsonp
スクリプトはsame-originポリシーの対象ではないので、scriptタグのsrc属性に異なるソースからのサーバー側のリクエストアドレスを書き込む。
不利な点: 方法しかわからない、XSS攻撃に弱い
2httpステータスコードとhttpsステータスコードの違いは何か?
サーバー側でレスポンスヘッダを設定する
app.use((req, res, next) => {
res.header('Access-Control-Allow-Origin', '*');
res.header('Access-Control-Allow-Methods', 'GET, POST');
next();
})
3webpackでクロスドメインプロキシを設定するには?vue.config.js
module.exports = {
devServer: {
host: 'localhost',
port: '8808',
proxy: {
'/api': {
target: 'http://...:xx', // アクセスするインターフェースのドメイン名
changeOrigin: true, // インターフェイスがクロスドメインの場合、このパラメータを設定する必要がある。
pathRewrite: {
'^/api': ''
}
}
}
}
}
ディープコピーと違いの浅いコピー、どのようにディープコピー、ディープコピーコードを達成するために
sessionStorage
localStorage
cookier
違いは何か?
1)さまざまな送信方法
cookieデータは常に同じソースのhttpリクエストで運ばれ、クッキーはブラウザとサーバーの間でやり取りされる。
sessionStoragehttpとlocalStorageの違いは?
2)異なるデータサイズ
cookiedataにもパスの概念があり、クッキーを特定のパスに属するものに限定することができる。
ストレージのサイズ制限も異なっており、クッキーのデータは4kを超えることはできないが、同時に、各httpリクエストはクッキーを運ぶので、すべてのクッキーは、セッション識別子のような非常に小さなデータを保存するためにのみ適している。
sessionStoragehttpとlocalStorageにもストレージサイズの制限があるが、クッキーよりもはるかに大きく、5M以上に達することができる。
3)データ有効期限とデータ有効期間の違いは?
sessionStoragehttpリクエストのステータスコードとhttpとhttpsの違いは?
localStoragehttpステータスコードとhttpsステータスコードの違いは何か?
cookieクッキーの有効期限は設定されたときだけで、ウィンドウやブラウザを閉じても有効である。
4)異なるスコープ
sessionStorage同じページであっても、異なるブラウザウィンドウで共有してはいけない。
localStorage 同じオリジンのウィンドウ間で共有されるものは何か?
cookieまた、すべての同一オリジンウィンドウで共有される。
NewのDate()はどこの時間を取得することができます
PCのローカル時間JSでは、除算のための2つの整数は、整数または10進数を取得します。
1サーバー側のセッションとクライアント側のクッキーの違いは?
2httpとhttpsの違いは何か?
3ブラウザがクッキーを無効にすると、セッションは無効になる。
4httpステータスコードとhttpsステータスコードの違いは何か?
5httpとhttpsの違いは何か? session
イベントデリゲートは何ですか?
1) ES6 Set
function unique (arr) {
return Array.from(new Set(arr))
} // クラス配列オブジェクトまたはtraversableオブジェクトを実際の配列に変換する。
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", {}, {}]
重複排除のこの方法は、互換性に関係なく、コード量が最も少ない。また、この方法では"{}"空のオブジェクト。後に高次のメソッドが追加され、重複が取り除かれる。"{}http」のメソッド
[...new Set(arr)]
//コードはとても小さい----
2) forを入れ子にして、スプライスの省略を使う(ES5で最もよく使われる)
function unique(arr){
for(var i=0; i<arr.length; i++){
for(var j=i+1; j<arr.length; j++){
if(arr[i]==arr[j]){ //1番目は2番目と等価で、spliceメソッドは2番目を削除する。
arr.splice(j,1);
j--;
}
}
}
return arr;
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", 15, false, undefined, NaN, NaN, "NaN", "a", { }, { }] //NaN {}デエンファシスはなく、2つのヌルが消える。
二重ループ、外側のループ要素、内側のループで値を比較する。値が同じ場合、値が削除される。
3) includes
function unique(arr) {
if (!Array.isArray(arr)) {
console.log('type error!')
return
}
var array =[];
for(var i = 0; i < arr.length; i++) {
if( !array.includes( arr[i]) ) {//includes 配列が特定の値を持つかどうかを検出する
array.push(arr[i]);
}
}
return array
}
var arr = [1,1,'true','true',true,true,15,15,false,false, undefined,undefined, null,null, NaN, NaN,'NaN', 0, 0, 'a', 'a',{},{}];
console.log(unique(arr))
//[1, "true", true, 15, false, undefined, null, NaN, "NaN", 0, "a", { }, { }] //{}重複排除を行わない
どのようにJSでイベントをバインドするには?
基本的な型-名前付き値はスタック・メモリに格納される
参照タイプ-名前はスタック・メモリに存在し、値はヒープ・メモリに存在し、スタック・メモリはヒープ・メモリの値のアドレスへの参照を提供する。
シャローコピーはコピーの1レベルのみ、ディープオブジェクトレベルはコピーの参照のみである。
ディープコピーは複数のレベルをコピーする。
var obj = {
id: 1,
name: 'andy',
msg: {
age: 18
},
color: ['pink', 'red']
};
var o = {};
// ラッパー関数
function deepCopy(newobj, oldobj) {
for (var k in oldobj) {
// httpとhttpsの違いは何か?
// 1. 属性の値を取得する oldobj[k]
var item = oldobj[k];
// 2. 値が配列かどうかを判断する
if (item instanceof Array) {
newobj[k] = [];
deepCopy(newobj[k], item)
} else if (item instanceof Object) {
// 3. 値がオブジェクトかどうかを判断する
newobj[k] = {};
deepCopy(newobj[k], item)
} else {
// 4. 単純なデータ型
newobj[k] = item;
}
}
}
deepCopy(o, obj);
addEventListenerは、イベントをリッスンするためにDOMオブジェクトに複数回追加することはできませんか?
はい、できます。attachEventは、DOMオブジェクトのリスニング・イベントを削除できますか?
いいえ、removeEventを使ってください。jsの3つの主なイベント
PCローカル時間
JSの3段階のイベント
キャプチャ、ターゲット、バブルhtmlのウェブページ要素は、どのイベントがトリガーされた後にロードされます。
parseIntと何が違うのか?Math.round(丸め)
バブルソートのコード
親ノードにリスナーを追加し、各子ノードに影響を与えるためにイベントバブリングを使用する。
<ul>
<li>111</li>
<li>222</li>
<li>333</li>
<li>444</li>
<li>555</li>
</ul>
<script>
var ul = document.querySelector('ul');
ul.addEventListener('click', function (e) {
e.target.style.backgroundColor = 'pink';
}) // デフォルトfalse、バブリング
</script>
クイックソート
1)イベント属性をhtmlタグに直接追加する
<div nclick="fun()"></div>
2)イベントハンドラプロパティに関数を割り当てる
var oBox = document.getElementById("container");
oBox.onclick = function() {}
3)addEventListener()イベントの追加
var oBox = document.getElementById("container");
oBox.addEventListener("click",fn(),false);
oBox.removeEventListener("click",fn(),false);
function fn(){//実行コード}
4)attachEvent()イベントを追加する、イベントをデタッチする、イベントを削除する
var oBox = document.getElementById("container");
oBox.attach("click",fn());
oBox.detach("click",fn());
function fn(){//関数を実行する}
onclick
addEventListenerオーバーライドしない
vue v-ifとv-showの違いと使用シナリオ、プロジェクトでの使用
ページが読み込まれる途中で何が起こるのか?
vue v-forキーには役割がありますか?キーがプロジェクトで使用されていない場合はどうなりますか?
いいえ、使用するremoveEvent
ライフサイクルのどの段階でのデータ要求?
マウスイベント
click
dblclick
mousedownページが読み込まれる途中で何が起こるのか?
mouseupマウスアップ
mouseoverマウスのカーソルを合わせる
mouseoutマウスを離す
mousemoveページが読み込まれる途中で何が起こるのか?
mouseenterページが読み込まれる途中で何が起こるのか?
mouseleaveマウスを離す
キーボードイベント
keydownキーを押す
keyupキーリフティング
keypressボタンを押す」と「ボタンを持ち上げる」の違いは?
HTML
loadドキュメントの読み込みが完了する
selectページがロードされるときとurlが選択されるときの違いは?
changeコンテンツが変更される
focusカーソルを取得する」の違いは?
resizeウィンドウサイズの変更
scrollスクロールバーが動く
computed属性computed、methodメソッド、listen属性watchの違いと利用シーンは?
キャプチャ、ターゲット、バブル
Vueにおけるスロットの役割とは?
JS
window.onload=function(){
alert("ページがロードされる!");
}
jQuery
$(document).ready(function(){
alert("ページがロードされる!");
});
$(function(){
alert("ページがロードされる!");
});
Vueは、親子コンポーネント内の値を渡す方法?Vue、兄弟コンポーネントの値を渡す方法?
本質:要素を交換する
function sort(elements){
for(var i=0; i<elements.length-1; i++){ //ループの数を制御するための外側のforループ
for(var j=0; j<elements.length-i-1; j++){ //2つの数値を交換するための内部forループ
if(elements[j] > elements[j + 1]) {
var swap = elements[j];
elements[j] =elements[j+1];
elements[j+1] = swap;
}
}
}
}
Vuexの使用?
本質:ダブルバブル
function quickSort(arr) {
if(arr.length<1){
return arr;
}
var pivoiIndex = Math.floor(arr.length/2); //
var pivot = arr.splice(pivotIndex, 1)[0]; // 基数を取り出して削除すると、spliceは値を配列として返す。
var left = [];
var right = [];
for (var i=0; i<arr.length; i++){
if(arr[i]<pivot){
left.push(arr[i])
}else{
right.push(arr[i])
}
}
return quickSort(left).concat([pivot], quickSort[right]);
Vueのライフサイクルは何ですか?どのように違いますか?どれがどのように使われていますか?
1) :
v-ifdomノードの有無を制御して、visibleとhiddenの要素を制御する;
v-showDOM要素の表示スタイルを設定することで、ブロックは表示、noneは非表示になる;
2)コンパイルのプロセス
v-ifトグルが部分的にコンパイルされている/アンロードの処理、切り替えの処理は、内部のイベントリスナーやサブコンポーネントを破棄して再構築するのが適切である;
v-show単純なcssベースのスイッチ
頻繁に切り替える必要がある場合は v-show
実行時に条件がほとんど変更されない場合は v-if
最初のページロード時にトリガーされるフックは何ですか?
key仮想DOMの役割は、仮想DOMを効率的に更新することである。
キーを使って各ノードを一意に識別し、新しいノードを挿入する正しい場所を見つける。
key属性は、同じタグ名の要素を使用するトランジションを切り替えるときに使用される。
プロジェクトでキーを使用しないとどうなるか:コンソールに黄色い警告が表示される。
created、mountedを使うタイミング
ページの完了後にロードされたページの必要性に関与してマウントに配置される。
createdを入れるとビューのhtmlがレンダリングされない。
mountedは一般的なputの中に何を置くのですか?
初期化リクエストビューコンポーネントデータなぜ関数です
1) computed実現できること、実現できるメソッド
2) computedは依存関係に基づいてキャッシュされ、computedは関連する依存関係が変更されたときのみ再計算されるという違いがある。
3) computedhttpとwatchの違いは何か?
watchwatchを使用する場合、データをリスニングし、複数のデータに影響を与えるため、非同期である必要がある。
watchデータ内の属性はすでにデータ内に存在していなければならない。オブジェクトの変更をリスニングする場合、通常のウォッチ・メソッドはオブジェクト内の属性の変更をリスニングすることはできない。データの中のデータだけが変化を聞くことができる、今回はオブジェクトの深い属性を深く聞く必要がある。
computed複数のデータの影響を受ける属性の計算、非同期ロジックが書けない。
$nextTick()をいつ使うのか、プロジェクトで使うことはあるのか?
スロットはサブコンポーネントのプレースホルダーであり、親コンポーネントに提供される。<slot></slot>
vue-cliによるjsonデータのシミュレーション方法
親コンポーネントと子コンポーネントの違いは?
親コンポーネントは子コンポーネントにバインドされたプロパティの形でリクエストを送信し、子コンポーネントはプロパティのpropsの形でそれを受け取る。
子コンポーネントが親コンポーネントに値を渡すとどうなるか?
サブコンポーネントの使用$emit()トリガーイベント&emit()最初のパラメータはカスタムイベントの名前で、2番目のパラメータは渡されるデータである。
親コンポーネントはv-onサブコンポーネントのイベントをリスニングする
兄弟間の受け渡し
イベントセンターにデータを渡す、イベントセンターを提供する var hub = new Vue()
イベントをトリガーとしてデータを渡すhub.$emit(メソッド名、渡されたデータ)
mounted()フックを通して、データを受け取る。.$on(メソッド名)
デストロイイベントhub.$off(メソッド名)
双方向バインディングの原則のvueの実装は何ですか?
vuex属性には、State、Getter、Mutation、Actionの5種類がある。Module
Stateデータソースストレージは、そこに格納されているデータは応答性がある
GetterURLとページロードの違いは何か?
Mutation,Vuexストアの状態を変更するには、コミットするしかない。 mutation
Action変異をコミットすることによって間接的に状態を変更する、あらゆる非同期操作を含む。
module:ストアをモジュールに分割し、それぞれにステート、ミューテーション、アクション、ゲッター、さらにはネストされたサブモジュールを持たせる。
アクシオスの使用におけるVue
create beforeCreate: この段階のインスタンスは初期化されているが、DOMノードを取得できない。el)
created: インスタンスが作成されたが、DOMノードを取得できない。el)
beforeMount: 移行フェーズで、vueマウントのルートノードが作成された。
mounted: データとDOMがレンダリングされた。
使用シナリオ:呼び出しの後、テンプレートがhtmlにレンダリングされる。
beforeUpdate: データの更新が検出され、DOMが更新される前に実行された場合、その間に何が起こるのか?
updated更新終了後に実行する
シナリオ:データの更新を統一的に処理する必要がある。$nextTick()
beforeDestroy: vueインスタンスを破棄するとき、破棄する前に何が起こるのか?
destroyedvueインスタンスを破棄するとき、途中で何が起こるのか?
Vueシングルページの利点と欠点
beforeCreate入力されたurlから読み込まれるページと、読み込まれたページから読み込まれるページの違いは何か?mounted
フックのグローバルな使用であるvue-ルータのフック関数
ルーティングの前に、テンプレートまたはテンプレートのコンパイルでデータをhtmlにレンダリングする必要がある。created
テンプレート内でデータをレンダリングする必要がある場合はmounted
プロミス
リクエストを初期化する
promise共通API
関数として書かれたデータ内のコンポーネント、関数の戻り値定義の形のデータ。
コンポーネントを再利用せず、新しいデータを返す。各コンポーネント・インスタンスにプライベート・データ空間を作るのと同じだ。各コンポーネント・インスタンスに独自のデータを保持させる。
オブジェクトとして書かれた場合、すべてのコンポーネントのインスタンスは共通のデータを共有し、すべての変更が結果になる。
ES6では、2つのパラメーターのpromiseの内部は何ですか?
データ変更後、いくつかのメソッドはデータ変更後のDOM変更に依存するため、nextTickの後に実行されなければならない。
this.$nextTick(_=>{ // ページ上の要素が再レンダリングされた後にコールバック関数を呼び出すコード。
//テキストボックスに自動的にフォーカスが当たるようにする
this.$refs.saveTagInput.$refs.input.focus()
})
非同期awaitの理解
1) 3.0 vue.config.js コンフィギュレーション
2) 静的データはパブリック・ディレクトリに保存される public/mock/home.json
3) vue.config.jsページのコンフィギュレーション
module.exports = {
devServer: {
proxy: {
'/api': {
target: 'http://:80',
changeOrigin: true,
pathRewrite: {
'^/api': '/mock'
}
}
}
}
}
asyncとPromise
v-bindデータをバインドするv-onデータの処理
データの変更はビューを更新し、ビューの変更はデータを更新する。
Object.defineProperty()各属性のセッター、ゲッターを乗っ取り、データ属性の変更をリッスンし、サブスクライバーに通知し、対応するリッスンコールバックをトリガーし、データが変更されたときにビューの更新を通知する。
HTTP
フロントエンドとバックエンドがパラメータを渡す、取得と投稿の違いは?
Axiosインタラクティブなプラグインの開発はajax + promiseに基づいている
http request cast content-typeは何をするために使用されますか?
利点:データ駆動、コンポーネント化、軽量、簡潔。
ブラウザの低バージョンをサポートしていない、IE9にのみ最小限のサポート;
ホームページの最初の読み込みには比較的時間がかかる;
ブラウザのナビゲーションボタンを使用することはできません独自の進む、戻るを実装する必要がある。
seo
httpステータスコード
ルーティングモジュールの本質は、urlとページの間にマッピング関係を確立することである。
ルーティングフック関数は3つに分けられる
1) グローバルフック:beforeEachグローバルフロントガード
アクセスするルーティングオブジェクトに3つのパラメータを渡す
from 現在のナビゲーションが出発するルート
next パイプラインの次のフック
グローバルフック:afterEachグローバルアフターフック
2つのパラメータ to / from
2) 単一のルート内のフックbeforeEnter, beforeLeave
3) コンポーネントのルーティングbeforeRouteEnter, beforeRouteUpdate, beforeRouteLeave
httpとhttpsの違いは?
var p = new Promise(function(resolve, reject){ // 非同期タスクの実装に使われる
setTimeout(function(){
var flag = false;
if(flag) { // 通常の状況
resolve('hello');
}else{ // 例外
reject(' ');
}
}, 100);
});
p.then(function(data){
console.log(data)
},function(info){
console.log(info)
});
input url start, page load complete, what happened in the middle of the
then()
catch()
finally()
race()
all()





