日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue 学习第五天 学习笔记

發布時間:2024/10/8 vue 76 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue 学习第五天 学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Vue ??學習第五天 ??

?

?

1. keyup事件

<div?id="app">

<input?type="text"?v-model="firstName"@keyup="getFullname">

<input?type="button"?value="+">

<input?type="text"?v-model="lastName"?@keyup="getFullname">

<input?type="button"?value="=">

<input?type="text"?v-model="fullName"?@keyup="getFullname">

</div>

<script>

var?vm?= new?Vue({

el :?'#app',

data :?{

firstName :?'',

lastName :'',

fullName :?'',

?

},

methods :?{

getFullname?(){

this.fullName?= this.firstName?+ this.lastName;

}

}

});

</script>

?

2. watch ?屬性,監聽相關數據變化,用function 實現

watch : { ///其與methods ?平級 ?監聽firstame 的變化,

firstName : function(){

//優勢,監聽非DOM 元素的變化

}

}

// ?watch :{

'$route.path' (newVal,oldVal){

//console.log(newVal +'--'+oldVal);

if(newVal == '/login'){

}else{

}

?

?

<body>

<!--watch 監聽路由,

watch 監聽非DOM 元素的變化,

-->

????<div?id="app">

<router-link?to="/login">登錄</router-link>

<router-link?to="/register">注冊</router-link>

<router-view></router-view>?<!--展示的容器-->

</div>

<script>

//1. 創建子組件,

var?login?={

template :'<h1>這個是登錄子組件,劉送杰開發的</h1>'

};

var?register?={

template :'<h1>這個是注冊子組件,劉送杰開發的</h1>'

};

//創建路由對象,然后構造路由 規則

var?router?= new?VueRouter({

routes :[ //這個是一個路由規則數組

{path :'/',redirect :?'login'},

{path :?'/login',component:login},

{path :?'/register',component:register},

],

linkActiveClass :?'myactive'?//激活相關的類

?

});

var?vm?= new?Vue({

el :?'#app',

data :?{

},

methods :?{

},

router,

watch :{

'$route.path'?(newVal,oldVal){

//console.log(newVal +'--'+oldVal);

if(newVal?== '/login'){

}else{

}

}

}

});

?

3. computed ?計算屬性,重新求值,相當于監聽這個元素或者數學的變化

computed : {

fullName : fucntion(){

?

return ?value; ?//記得返回值

}

}

?

4. 工具nrm ?的使用

1.先安裝node.js ?然后就自帶了npm工具,

2. 然后安裝 nrm。安裝指令 npm - i nrm -g ?安裝為全局可用

[npm i ?****] ?安裝某個包

npm i ??jquery ?安裝jquery

?

3. nrm ls ?查看,ls --->> list ?查看當前鏡像,

nrm use npm ?切換到相關鏡像

nrm use taobao

nrm ?是提供了幾個下載包的切換地址,為了方便切換,

下載包還是使用npm

5. webpack ?的學習與使用

5.1 ?網頁靜態資源: JS .js ?.jsx ?.coffee ?.ts ),CSS ( .css ?.less ??.sass -->>.scss )Images(.jpg ?.png ?.gif ?.bmp ?.ps ?.svg ?) ?Fonts( .svg .ttf ?.woff ?.eot ) ,模板文件( .ejs ?.jade ?.vue(這個是在webpack中定義組件的方式,推薦這么用) ??)

?

5.2 網頁中,靜態資源多了以后,會有什么問題??

1. 網頁加載速度慢,因為要發起很多二次請求,拿html 代碼,解析完畢以后,-->>js/CSS ,大量的請求。

2.要處理錯綜復雜的包之間的依賴關系,

?

5.3如何解決上述問題??

1. 合并、壓縮(圖片與jscss),精靈圖(合并圖片),圖片的Base64編碼,src= ‘XXXXX’?。等于一個字符串,圖片轉成字符串,

2.可以使用之前的 requireJS ?,webpack ,,利用它們去解決各個包之間的復雜依賴關系,

?

5.4 什么是webpack

5.4.1 webpack ?是一個前端項目構建工具,是基于node.js 開發出來的一個工具,必須安裝node.js

5.4.2 如何完美的結局上述問題,

1.使用Gulp。基于任務task 的,(小)

2.使用webpack。 基于整個項目進行構建的。(大)

借助于webpack這個前端自動化構建工具,可以實現資源的合并、打包、壓縮、混淆等功能。

webpack 打包工作過程

6. webpack 安裝

第一種npm ?i ?webpack ??-g ?

第二種 npm i webpack --save-dev 安裝到項目跟目錄

如何查看webpack 是否安裝成功

1)安裝完成以后報錯,

One CLI for webpack must be installed. These are recommended choices, delivered as separate packages:

?

2)選擇指令 ?webpack-cli 還是報錯,

然后選擇新的指令 ?npm i webpack-cli -g

安裝成功, 使用webpack -v 查看到版本信息號。

?

3webpack .\src\main.js ?.\dist\bundle.js 報錯

?

原因是版本太高 ,我安裝的是V4.14.0, ???V3.0以下的不會報錯

解決方法:web-pack>webpack .\src\main.js --output .\dist\bundle.js

中間加一個 ?--output 指令

Usage without config file: webpack <entry> [<entry>] --output [-o] <output>

Notice:?--output?need to be specified explicitly

webpack ./src/index.js --output ./dist/bundle.js --mode development

Add?--output?to it will be ok.

7. webpack ?初步熟悉使用

1. 建立項目文件夾 (文件夾或者名稱你可以自定義,但是盡量標準化)

2.建立項目目錄,必須目錄和必須文件,然后使用項目指令

1.) ?dist ?--存放打包文件

2.src ?--存放文件

3src 下下面建立 ?css /js/images 文件

4) 在src 目錄下,建立必備文件目錄,index.html ?main.js

?

3.整個部署于使用過程如下。

犯錯總結:index.html 中忘記引包了src="../dist/boudle.js",所以沒有效果。。。。

<!doctype html>

<html?lang="en">

<head>

<meta?charset="UTF-8">

<meta?name="Generator"?content="EditPlus?">

<meta?name="Author"?content="">

<meta?name="Keywords"?content="">

<meta?name="Description"?content="">

<title>組件的開發</title>

<script?src="../dist/boudle.js"></script>

</head>

<!--

1.想要控制li,需要引入Jquery

2. 倒入Jquery包,使用 npm 指令,

3.初始化一下 npm init:這個命令用于創建一個package.json。 特別要注意路徑

npm init --yes或npm init -y:從當前目錄中提取的信息生成默認的package.json。創建過程中不會提問。

?

4. npm i jquery -s 安裝Jquery(倒入)jquery

5. 到main.js 中去編輯相關代碼和指令,

6.寫好以后,明知道不會兼容,因此需要webpack 打包一下,

7.webpack .\src\main.js --output .\dist\boudle.js

8.index.html 中忘記引包了src="../dist/boudle.js",所以沒有效果。。。。

-->

<body>

<ul>

<li>111111</li>

<li>22222</li>

<li>1333</li>

<li>1333</li>

<li>13333</li>

<li>13333</li>

<li>1333</li>

<li>14444</li>

<li>14994</li>

<li666></li>

</ul>

</body>

</html>

?

webpack 4.14.0 版本太高,無法執行相關指令,指令不熟悉,高版本切換到低版本,

直接重新安裝就行,使用 npm i webpack@3.6.0?-g ?

8. ??[webpack.config.js]學習。鑒于每次修改配置文件,沒有立即生效,需要手動重新打包,指令過程的問題,

webpack .\src\main.js --output .\dist\boudle.js

因此,設置配置文件,webpack.config.js ?簡化打包指令。

【配置如下

const?path?= require('path');

//配置入口和出口文件..這個文件其實就是一個js 文件,通過Node 中的模塊操作,向外暴露一個配置對象

module.exports?= {

//在配置文件中,手動指定入口和出口文件,

//怎么配置呢??

entry:?path.join(__dirname,'./src/main.js') , //入口,表示要使用webpack 打包哪個文件

output:{ //出口文件

path :?path.join(__dirname,'./dist'), //指定打包好的出口文件的存放目錄,

filename :?'bundle.js'?//指定輸出文件名稱

}

}

?

直接使用 webpack命令 ?就行。

他主要是做了以下工作:

1.webpack

?

9.想實現webpack 自動監聽代碼修改,就自動打包。

但是需要 webpack-dev-server 這個工具,來實現自動打包編譯的功能

1.運行 npm i webpack-dev-server -D ?把這個工具安裝到項目的本地,開發依賴,

2. 安裝完畢以后,這個工具的用法,和webpack 命令的用法完全一致,

webpack ??--->>> 要使用webpack-dev-server,需要在本項目中安裝 【具備webpack

3. 由于是在項目中本地安裝的dev-server ,所以無法把他當作全局腳本命令在powershell 終端中運行,只有那些安裝到全局,-g 中的才能在終端執行。

需要到 package.json 中去進行相關注冊。

安裝完畢以后,想運行 npm run dev ?,但是報錯。

?

,那么怎么辦呢?

就把\node_modules 刪掉,則需要重新安裝相關包。 npm i 安裝所有包,(一旦提示有什么包沒有安裝,則安裝一下)。

npm i webpack@3.6.0 -D ?(項目具備安裝)

npm i webpack-dev-server -D (項目局部安裝)

npm ?i ?報錯

?

webpack ?webpack-dev-server ?wepack-cli ?相關版本之間的兼容性

?

【版本兼容性問題錯誤總結,耽誤半天學習】

一定不要運行npm i ?XXX ?-g(-d) 一定要指定版本,盡量低版本,也不最新版本,會導致不兼容和指令不一樣的問題。

1.安裝webpack-dev-server 報錯,說需要webpack-cli,原因,這兩個之中某一個版本太高。,重新安裝低版本

2.安裝webpack-cli ,然后還是不能使用,

3. npm WARN webpack-cli@3.0.8 requires a peer of webpack@^4.x.x but none is installed. You must install peer dependencies yourself.。。說明安裝的Webpack版本太高,切換到,---》》》》》》》》》"webpack": "^3.6.0",

4.最后安裝 "webpack-cli": "^3.0.0",?【局部安裝】

5.安裝"webpack-dev-server": "^2.9.1"??【局部安裝】

6.安裝webpack【局部安裝】

報錯總結:

1

npm WARN webpack-cli@3.0.8 requires a peer of webpack@^4.x.x but none is installed. You must install peer dependencies yourself.

2

npm WARN webpack-dev-middleware@3.1.3 requires a peer of webpack@^4.0.0 but none is installed. You must install peer dependencies yourself.

npm WARN webpack-dev-server@3.1.4 requires a peer of webpack@^4.0.0-beta.1 but none is installed. You must install peer dependencies yourself.

3

C:\Apache24\htdocs\example\Aproject\test\first-day\Vue-study\02-day\web-pack

> webpack-dev-server

The CLI moved into a separate package: webpack-cli.

Please install 'webpack-cli' in addition to webpack itself to use the CLI.

-> When using npm: npm install webpack-cli -D

-> When using yarn: yarn add webpack-cli -D

參考資料:

版本不兼容https://blog.csdn.net/weixin_39495540/article/details/79740790

https://www.cnblogs.com/carrotWu/p/8665720.html

https://www.npmjs.com/package/webpack-cli

?

?

10npm ?run dev ?執行成功,托管如下

?

?

原來引用是 <script?src="../dist/bundle.js"></script>

現在引用是<script?src="../bundle.js"></script>

實現了自動打包,編譯,并且刷新頁面。

bundle.js ?看不到,因為放置在內存,所以訪問很快。

?

11. ?webpack-dev-server的常用命令參數。ctrl +c 終止服務器。

第一種方式,推薦:在{package.json 中配置}

指令學習

--open

--port

--contentBase

--hot

?

前面的npm run dev 存在缺點,還是需要,打開服務器瀏覽器,

因此重新在里面配置

"dev": "webpack-dev-server --open --port 3000 --contentBase src"

--open 自動打開瀏覽器,--port 3000 訪問端口為3000 --contentBase serc 自動訪問路徑為src .

"dev": "webpack-dev-server --open --port 3000 --contentBase src --hot"?

實現瀏覽器的無刷新重載。減少不必要的刷新請求。

?

?

?

12. webpack-dev-server 的第二種配置方式,以配置文件的方式運行

{webpack.config.js} 中運行。

要配置

const?webpack?= require('webpack');

?

//配置dev-server 的第二種方式,相對來說,麻煩一些,相關參數在這里配置,要實現以下功能,實現相關屬性

// "dev2": "webpack-dev-server --open --port 3000 --contentBase src --hot",

open :?true, //自動打開瀏覽器

port :?3000, //設置自動運行的端口

contentBase :?'src', //指定托管的目錄

hot :?true?//啟用熱啟動 .最開始是不能用的,需要繼續配置,瀏覽器會報錯。這個只是第一步,

//啟用熱更新的第二步,在最前面配置。const webpack = require('webpack');

//還有第三步。

},

plugins :[ //配置插件的節點

new?webpack.HotModuleReplacementPlugin() //new 一個熱更新的模塊對象,這個啟用熱更新

]

?

13.把頁面放到內存中去,生產內存中的那個頁面

1.先安裝:npm i html-webpack-plugin -D 這個

安裝完畢以后報錯,又是以為版本太高的原因。

?

2. 導包 ,const?htmlWebpackPlugin?= require('html-webpack-plugin');

?

3.new對象

new?htmlWebpackPlugin({ //創建一個在內存中生成html 的插件。

template :?path.join(__dirname,'./src/index.html'), //指定模板頁面,將會根據指定的路徑去在內存中生成頁面

filename :?'index.html'?//生成的html 名稱 123.html 也行

}),

?

?

14.針對CSS 的包裝與打包

1.參考倒入jquery,main.js ?中引入css ,但是報錯,因為無法解析。需要下載相關解析加載器。

?

2.下載相關包。

注意,先查版本,下載包。

cnpm i style-loader@0.18.1???css-loader@0.28.3?-D

3.webpack.config.js 配置文件中,新增一個節點,叫做module,這個是一個對象。

module對象中,有一個rules屬性,rules 屬性是一個數組,存放所有第三方文件的匹配和處理規則。

module :{ //這個節點用于配置所有的第三方模塊加載器。

rules :[ //所有的第三方的 匹配規則。

{test :?/\.css$/,use :['style-loader','css-loader']} //配置處理。css文件的第三方loader規則

]

}

總結: 第一步,安裝相關loader

第二步,配置處理規則

15. .loader-配置處理less文件的loader

1.倒入以后報錯,import './css/index.less' //倒入less

2.需要安裝相關的解析包,

npm i less-loader@4.0.0 -D ???先查看版本,4.0.0 還是無法工作。版本太高

npm i less-loader@2.2.3 -D

還要安裝 ?npm i less@3.0.0-alpha.2?-D 先查看版本

npm i less@2.7.2 -D

3.webpack.config.js 中配置解析規則

16. loader處理。19.loader-配置處理scss文件的loader

1. loader ,雖然后綴是index.scss ?但是解析器是sass-loader

2. 查看版本, 安裝npm i sass-loader@3.2.3 -D

?

但是他需要:安裝 node-sass ?npm i node-sass@3.4.2 -D ?但是安裝不成功。用轉換成 cnpm ?才行。nrm use cnpm ,

?

4.編寫規則

?

17.

?

?

18.

?

?

與50位技術專家面對面20年技術見證,附贈技術全景圖

總結

以上是生活随笔為你收集整理的Vue 学习第五天 学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。