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

資訊專欄INFORMATION COLUMN

前端框架_Vue

qieangel2013 / 1319人閱讀

摘要:如果沒有文件,則讀取文件夾下的或者。如果都都找不到,拋出錯誤。

JS表達式

函數(方法)調用表達式

test() //函數調用表達式

屬性調用表達式

var obj = {name:"wt"};
var arr = [123,"bai"];
obj.name   //屬性調用表達式
arr[0]     //屬性調用表達式

變量(常量)調用表達式

let name = "wutao";
name  //變量調用表達式

字面量表達式

123         //數值字面量表達式
"wtao"      //字符串字面量表達式
true        //布爾字面量表達式
null        //空表達式
undefined   //未定義表達式
{name:"wt"} //對象字面量表達式
[123,true]  //數組字面量表達式

算術表達式

a + 1       //算術表達式
b * 1       //算術表達式

三目表達式

conidion ? name : title
模板語法

插值

// 語法:     雙大括號{{}}
// 使用場景: 標簽內容處使用
// 單向數據綁定
// 支持JS表達式

{{msg}}
{{getContent()}}
插值v-text 區別
兩者都是在標簽內容處插入內容,但v-text是全量插入,而插值更靈活,除了全量插入,還可以使用部分插入
推薦只要使用插值就可以了

指令

是模板語法重中之重,常用如下
v-text     //使用插值替代
v-html     
v-show
v-if       //條件判斷
v-else
v-else-if
v-for      //循環
v-on       //綁定事件
v-bind     //綁定屬性
v-model    //雙向數據綁定
v-pre
v-cloak
v-once
指令

屬性綁定

// 單向數據綁定
// 支持JS表達式
// 使用指令v-bind,需傳入標簽屬性作為參數,例如:v-bind:title=""

xxx

出現上面的情況,屬性誰后誰顯示,原理是后面替代前面如果title在:title后面,那單向數據綁定失效
如果是使用函數,必須后面加括號調用()
1、數值型   :title="123"             等同于  title="123"
2、布爾型   :title="true"            等同于  title="true"   //false時,屬性消失
3、字符串   :title=""go""            等同于  title="go"
4、對象     :title="{name:"wt"}"     等同于  title="[Object object]" 
5、數組     :title="[123,true,"bb"]" 等同于  title="true,ok,123"

事件綁定

注意如果改為如下代碼,this將發生變化
所有函數(方法)的定義,強烈推薦放在methods里,不要定義到data里面

條件判斷渲染

// 單向數據綁定
// 支持JS表達式

//數字0 --> false
//字符串0 ---> true
注意點:
1、對象和數組轉boolean都是true
2、空字符串轉boolean是false
3、null、underfined、NaN轉boolean是false
4、數值0是false
let arr = []
if(arr){
    console.log("true");
}

if(arr == fasle){
    console.log("true");  // ==兩邊轉數值
}

循環渲染

// 單向數據綁定
// 支持JS表達式
// items可以是數字、字符串、數組、對象

  • {{ item.message }}
  • {{ item }} : {{ key }}
  • {{ item }} : {{key}}
雙向/單向數據動態綁定__原理

單向

var obj = {};
var initValue = "hello";
Object.defineProperty(obj,"newKey",{
    get:function (){
        //當獲取值的時候觸發的函數
        return initValue;
    },
    set:function (value){
        //當設置值的時候觸發的函數,設置的新值通過參數value拿到
        initValue = value;
    }
});
//獲取值
console.log( obj.newKey );  //hello   輸出

//設置值
obj.newKey = "change value";

console.log( obj.newKey ); //change value
console.log( initValue );  //change value

雙向

var obj = {};
var initValue = "hello";
Object.defineProperty(obj,"newKey",{
    get:function (){
        //當獲取值的時候觸發的函數
        return initValue;
    },
    set:function (value){
        //當設置值的時候觸發的函數,設置的新值通過參數value拿到
        initValue = value;
    }
});
document.getElementById("txt").oninput = function(e){
    obj.newKey = e.target.value;
}
單頁應用 vs 多頁應用

多頁應用

頁面跳轉 ---> 返回html

優點:
首屏速度快,SEO效果好

缺點:
頁面切換慢

單頁應用

頁面跳轉 ---> JS動態渲染

優點:
頁面切換快

缺點:
首屏速度慢,SEO差
Vue 實例

分類

根實例組件實例區別

1、是否有掛載
    有---根實例
    沒---組件實例
    
2、文件后綴
    .js---根實例
    .vue--組件實例
    
3、寫法
    手動new Vue()---根實例
    導出export default {}---組件實例
組件

組件是什么?與模塊有什么不同?

使用Vue構建單頁應用,單頁應用由Vue單文件組件組成,所謂組件指的就是Vue單文件組件(包含模板、樣式、交互)
模塊指的就是JS模塊(單純包含JS代碼)
使用ES6模塊化導入

1、路徑問題

nodejs內置模塊與npm安裝的第三方模塊,直接引用
import Vue from "vue";
import http from "http";

自定義模塊或自定義組件,要帶路徑引用
./ 代表 當前文件所在路徑
../代表 當前文件父級所在路徑
import App from "./App.vue";
import App from "../App.vue";

2、后綴問題(無后綴,先判斷是否是文件,找不到再判斷是否是目錄)

當省略后綴,只會匹配js/json/node后綴文件
所以當你要導入css、vue單文件組件時,就必須加上后綴
如果導入的是文件夾(包),將按如下順序查找:
<1>查找 package.json 下是否定義了 main 字段,是則讀取 main 字段下定義的入口。
<2>如果沒有 package.json 文件,則讀取文件夾下的 index.js 或者 index.node。
<3>如果都 package.json、index.js、index.node 都找不到,拋出錯誤 Error: Cannot find module "some-library"。

鏈接描述

組件與模塊最大區別是:是否要注冊
使用流程

組件(.vue): 導入——>注冊——>使用
模塊(.js):   導入——>使用

組件之間關系

1、嵌套關系(父子、爺孫)
2、非嵌套關系(兄弟、表叔與我)

組件定義的三大區域

1、模板