轉載 vue的基礎使用

轉載https://www.cnblogs.com/majj/p/9957597.html#top

vue的介紹

  • 前端框架和庫的區別
  • nodejs的簡單使用
  • vue的起步
  • 指令系統
  • 組件的使用
  • 過濾器的使用
  • watch和computed
  • 鉤子函數

漸進式的JavaScript框架

vue           react            angualr作者:尤雨溪    facebook         谷歌公司文檔:中文  建議:如果你想學好vue  
1.看視頻  初步的了解vue  
2.學vue的課 時刻看官網文檔  https://cn.vuejs.org/

前端框架和庫的區別

功能上的不同

jquery庫:包含DOM(操作DOM)+請求,就是一塊功能。art-template庫:模板引擎渲染,高性能的渲染DOM    (我們后端的一種模板  跟python的模板類似)框架:大而全的概念,簡易的DOM體驗+請求處理+模板引擎在KFC的世界里,庫就是一個小套餐,框架就是全家桶。

代碼上的不同

一般使用庫的代碼,是調用某個函數或者直接使用拋出來的對象,我們自己處理庫中的代碼。
一般使用框架,其框架本身提供的好的成套的工具幫我們運行我們編寫好的代碼。

框架的使用

  • 初始化自身的一些行為
  • 執行你所編寫的代碼
  • 釋放一些資源

nodejs

  1. 去官網https://nodejs.org/en/download/ 下載 安裝(傻瓜式安裝)

  2. 打開終端 cmd : 執行node -v 如果出現版本號,證明安裝node成功 ,跟安裝python雷同

  3. 下載完node之后,會自帶包管理器 npm,好比 是python中 pip3包管理器。pip3 install xxx

  4. 使用npm

    1. 1.要初始化npm的項目 :

      npm init --yes 自動生成一個package.json文件

      ```javascript
      {"name": "vue_lesson","version": "1.0.0","description": "這是我的vue的第一個項目","main": "index.js","scripts": {"test": "echo "Error: no test specified" && exit 1"},"author": "mjj","license": "ISC","dependencies": {"vue": "^2.5.16"}}```

      2.下載依賴包

      npm install vue --save
      npm install jquery --save

      3.卸載包 npm uninstall vue --save

      4.下載所有的依賴包 npm install

vue的起步

  • 引包:
  • 創建實例化對象
new Vue({
el:'#app',//目的地
data:{msg:"hello Vue"
}
});
/*
{{}}: 模板語法插值{{變量}}{{1+1}}{{'hello'}}{{函數的調用}}{{1==1?'真的':'假的'}}
*/

指令系統

//常用
v-text 
v-html 
v-if
v-show
v-for
v-bind
v-on表單控件的value (看后面)

v-if和v-show


v-if 是“真正”的條件渲染,因為它會確保在切換過程中條件塊內的事件監聽器和子組件適當地被銷毀和重建。
v-if 也是惰性的:如果在初始渲染時條件為假,則什么也不做——直到條件第一次變為真時,才會開始渲染條件塊。
相比之下,v-show 就簡單得多——不管初始條件是什么,元素總是會被渲染,并且只是簡單地基于 CSS 進行切換。
一般來說,v-if 有更高的切換開銷,而 v-show 有更高的初始渲染開銷。因此,如果需要非常頻繁地切換,則使用 v-show 較好;如果在運行時條件很少改變,則使用 v-if 較好。//保存數組或者對象 格式
v-for = '(item,index) in menuList'
v-for = '(value,key) in object'
//item指的是數組中每項元素
<a href="" class='box'></a>
<img src="" alt="">
使用v-bind:class = '{}||[]||變量名||常量' 對我們的頁面中標簽的屬性進行綁定 所有的屬性都可以進行綁定,注意只要使用了v-bind 后面的字符串一定是數據屬性中的值

?### v-on、v-bind、v-for

// 1.事件源 2.事件  3.事件驅動程序
vue中使用v-on:click對當前DOM綁定click事件 注意:所有的原生js的事件使用v-on都可以綁定v-if和v-on 來對頁面中DOM進行操作v-bind:classv-on對頁面中DOM的樣式切換v-bindv-onvue中它可以簡寫: v-bind:         
:class 等價于 v-bind:class   
:src 等價于v-bind:src
:id 等價于v-bind:id
v-on:click   等價于 @click = '方法名'
v-text  v-html  {{}}: 對頁面的dom進行賦值運算   相當與js中innerText innerHTMLv-if = 'true':
//創建
var oP =   document.createElement('p')  ;
oDiv.appendChild(op)v-if = 'false'
//銷毀
oDiv.removeChild(op)
v-show = 'true'
oDiv.style.display = 'block'
v-show:'true'
oDid.style.display = 'none'v-bind:class
oDiv.className += ' active'/*
漸進式的JavaScript框架
做加法和做減法:大部分的人覺得做加法簡單,做減法難
vue這個框架 將 做減法的事情都給咱們做了(難的部分)
學習簡單的部分就能實現復雜的dom操作
*/

組件的使用

局部組件的使用

? 打油詩: 1.聲子 2.掛子 3.用


var App = {tempalte:`<div class='app'></div>`
};//2.掛子new Vue({el:"#app",//用子    template:<App />components:{App}})

(1)父組件向子組件傳遞數據:通過Prop

1.在子組件自定義特性。props:['自定義的屬性1','自定義屬性2']當一個值傳遞給一個 prop 特性的時候,它就變成了那個組件實例的一個屬性,那么我們就可以像訪問data中的值一樣  
2.要在父組件中導入的子組件內部 綁定自定義的屬性 <Vheader :title = '父組件中data聲明的數據屬性'/>

? 注意:一個組件默認可以擁有任意數量的 prop,任何值都可以傳遞給任何 prop。

(2)如何從子組件傳遞數據到父組件

1.給子組件中的某個按鈕綁定原聲事件,。我們可以調用內建的 this.$emit('自定義的事件名','傳遞的數據'),來向父級組件觸發一個自定義的事件.2.在父組件中的子組件標簽中 要綁定自定義的事件,

全局組件的使用

Vue.component('全局組件的名字',{跟new Vue() 實例化對象中的options是一樣,但是要注意:不管是公共組件還是局部組件 data必須是個函數 函數一定要返回 {}
})
  <slot> 元素作為承載分發內容的出口

過濾器的使用

局部過濾器

 //1.注冊局部過濾器 在組件對象中定義
filters:{'過濾器的名字':function(value){}   
}
//2.使用過濾器 使用管道符 | 
{{price  | '過濾器的名字'}}

全局過濾器

// 注冊全局的過濾器
//第一個參數是過濾器的名字,第二個參數是執行的操作Vue.filter('reverse',function(value) {    return value.split('').reverse().join('');
});//使用跟 局部過濾器一樣

計算屬性computed和偵聽器(watch)

偵聽的是單個屬性

watch:{數據屬性的名字:function(value){},數據屬性的名字2function(value){}
}

偵聽多個屬性:計算屬性 computed

{{str.split('').reverse().join('')}}

計算屬性 :默認只有getter方法data(){return {name:'alex',age:18}}compuetd:{key:value計算屬性的方法名:funtion(){return ${this.name}他的年齡是${this.age}歲}}var musicData = [{id:1,name:'于榮光 - 少林英雄',author:'于榮光',songSrc:'./static/于榮光 - 少林英雄.mp3'},{id:2,name:'Joel Adams - Please Dont Go',author:'Joel Adams',songSrc:'./static/Joel Adams - Please Dont Go.mp3'},{id:3,name:'MKJ - Time',author:'MKJ',songSrc:'./static/MKJ - Time.mp3'},{id:4,name:'Russ - Psycho (Pt. 2)',author:'Russ',songSrc:'./static/Russ - Psycho (Pt. 2).mp3'}];

生命周期(鉤子函數)

beforeCreate(){// 組件創建之前console.log(this.msg);},created(){// 組件創建之后// 使用該組件,就會觸發以上的鉤子函數,created中可以操作數據,發送ajax,并且可以實現vue==》頁面的影響  應用:發送ajax請求console.log(this.msg);// this.msg = '嘿嘿黑';},beforeMount(){// 裝載數據到DOM之前會調用console.log(document.getElementById('app'));},mounted(){// 這個地方可以操作DOM// 裝載數據到DOM之后會調用 可以獲取到真實存在的DOM元素,vue操作以后的DOMconsole.log(document.getElementById('app'));},beforeUpdate(){// 在更新之前,調用此鉤子,應用:獲取原始的DOMconsole.log(document.getElementById('app').innerHTML);},updated(){// 在更新之前,調用此鉤子,應用:獲取最新的DOMconsole.log(document.getElementById('app').innerHTML);},beforeDestroy(){console.log('beforeDestroy');},destroyed(){console.log('destroyed');},activated(){console.log('組件被激活了');},deactivated(){console.log('組件被停用了');}

$屬性

  • $refs獲取組件內的元素
  • $parent:獲取當前組件的父組件
  • $children:獲取當前組件的子組件
  • $root:獲取New Vue的實例化對象
  • $el:獲取組件對象的DOM元素

獲取更新之后的dom添加事件的特殊情況

$nextTick 是在下次Dom更新循環結束之后執行的延遲回調,在修改數據之后使用$nextTick ,則可以在回調中獲取更新之后的DOM

?

轉載于:https://www.cnblogs.com/ming-yuan/p/10036581.html

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

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

相關文章

Express實現路由分發控制、RESTful API

Express實現路由分發控制、RESTful API 標簽&#xff08;空格分隔&#xff09;&#xff1a; Node.js 最近在用Express作為自己的WEB應用框架&#xff0c;其中最為迷惑的就是Express的路由控制和分發&#xff0c;在網上搜了很多資料&#xff0c;但是大部分的資料都是將Express的…

springboot運行jar包時候加載指定目錄的其他jar支持包

最近發生一個小故障&#xff0c;調試好的項目&#xff0c;發布成jar包后無法找到oracle的驅動&#xff0c;研究了一下解決了。記錄一下。寫了一個run.sh腳本 #!/bin/bash cd ~ cd app nohup java -Djava.ext.dirs./lib -Doracle.jdbc.thinLogonCapabilityo3 -jar -Xms512m -Xmx…

OpenLayers3關于Map Export的Canvas跨域

一 Canvas跨域現象 地圖導出是地圖中常用的功能&#xff0c;并且OpenLayers3中也提供了兩個地圖導出的例子:http://openlayers.org/en/latest/examples/export-map.html http://openlayers.org/en/latest/examples/export-pdf.html。 看到這兩個例子我們都很興奮&#xff0c;直…

typescript-koa-postgresql 實現一個簡單的rest風格服務器 —— 連接 postgresql 數據庫...

接上一篇&#xff0c;這里使用 sequelize 來連接 postgresql 數據庫 1、安裝 sequelize&#xff0c;數據庫驅動 pg yarn add sequelize sequelize-typescript pg reflect-metadata 2、新建配置文件夾 conf 及 配置文件 db.conf.ts /*** name: 數據庫配置* param : undefined* r…

SmartGit使用教程

說明 官網的客戶端是命令行形式的&#xff0c;有興趣可以去了解下。這里針對圖形界面的smartgit做一個使用說明。 軟件下載和安裝 下載地址[2016.12.16測試可以] 按需選擇,如果不知道自己電腦是什么系統的&#xff0c;那我沒話說了https://www.syntevo.com/smartgit/ 安裝 …

jquery 下拉框 select2 運用 筆記

1,添加select2 樣式 參考&#xff08;https://select2.org/ &#xff09; 2,Html: <select id"txtType" name"Type" class"form-control select2" multiple"multiple"> </select> 3,jquery section scripts{ $(documen…

Asp.Net MVC中Action跳轉小結

首先我覺得action的跳轉大致可以這樣歸一下類&#xff0c;跳轉到同一控制器內的action和不同控制器內的action、帶有參數的action跳轉和不帶參數的action跳轉。 一、RedirectToAction(“Index”);//一個參數時在本Controller下&#xff0c;不傳入參數。 二、RedirectToAction(A…

獲取瀏覽器屏幕高度(js,jq) - 進擊的小牛牛 - 博客園

javascript IE中&#xff1a; document.body.clientWidth > BODY對象寬度 document.body.clientHeight > BODY對象高度 document.documentElement.clientWidth > 可見區域寬度 document.documentElement.clientHeight > 可見區域高度 FireFox中&#xff1a; docum…

589-N叉樹的前序遍歷

N階二叉樹&#xff1a; class Tree {public int val;public List<Tree> children;public Tree() {}public Tree(int _val, List<Tree> _children) {val _val;children _children;}}迭代法遍歷&#xff1a;public List<Integer> preorder(Tree root) {List&…

解析URL參數

1、拿到一個完整url后&#xff0c;如何解析該url得到里面的參數。 /*** 解析url中參數信息&#xff0c;返回參數數組*/ function convertUrlQuery($query) {$queryParts explode(&, $query);$params array();foreach ($queryParts as $param) {$item explode(, $param);…

第一個爬蟲和測試

Python測試函數的方法之一是用&#xff1a;try……except def gameover(a,b):if a>10 and b>10 and abs(a-b)2:return Trueif (a>11 and b<11) or (a<11 and b>11):return Truereturn False try:agameover(10,11)print(a) except:print("Error") g…

JS組件系列——Bootstrap 樹控件使用經驗分享 - 懶得安分 - 博客園

前言&#xff1a;很多時候我們在項目中需要用到樹&#xff0c;有些樹僅僅是展示層級關系&#xff0c;有些樹是為了展示和編輯層級關系&#xff0c;還有些樹是為了選中項然后其他地方調用選中項。不管怎么樣&#xff0c;樹控件都是很多項目里面不可或缺的組件之一。今天&#xf…

算法第4章實踐報告

1.實踐題目&#xff1a;最小刪數問題 2.問題描述&#xff1a;給定n位正整數a&#xff0c;去掉其中任意k≤n 個數字后&#xff0c;剩下的數字按原次序排列組成一個新 的正整數。對于給定的n位正整數a和正整數 k&#xff0c;設計一個算法找出剩下數字組成的新數最 小的刪數方案。…

Vue 下拉刷新及無限加載組件 - 有你便是晴天 - 博客園

原文 https://github.com/wangdahoo/vue-scroller 主題 Vue.js Vue Scroller Vue Scroller is a foundational component ofVonic UI. In purpose of smooth scrolling, pull to refresh and infinite loading. Demo Change Logs v0.3.9 add getPosition method for scr…

用java編程實現集合的交、并、差和補運算

一、實驗目的 掌握集合的交、并、差和補運算&#xff0c;并且使用計算機編程實現。 二、實驗內容 通過編程實現求給定集合A和B的并集C&#xff08;CA∪B&#xff09;、交集C&#xff08;CA∩B&#xff09;、差集C&#xff08;CA-B&#xff09;、補集~CE-C的運算。 三、實驗要求…

node.js項目中常量的配置 - 個人文章 - SegmentFault 思否

在項目中&#xff0c;我們常將一些常量信息做成配置項&#xff0c;如&#xff0c;數據庫的鏈接配置&#xff0c;業務錯誤代碼配資等等。 我們通過兩種方式可以解決該問題。 系統環境變量的方式 配置文件的方式 下邊&#xff0c;將以這兩方面進行展開。 1. 系統環境變量 No…

MySQL create table語法中的key與index的區別

在create table的語句中&#xff0c;key和index混淆在一起&#xff0c;官方手冊中的解釋是這樣&#xff1a; KEY is normally a synonym for INDEX. The key attribute PRIMARY KEY can also be specified as just KEY when given in a column definition. This was implemente…

藍橋杯 歷屆試題 九宮重排 (bfs+康托展開去重優化)

Description 如下面第一個圖的九宮格中&#xff0c;放著 1~8 的數字卡片&#xff0c;還有一個格子空著。與空格子相鄰的格子中的卡片可以移動到空格中。經過若干次移動&#xff0c;可以形成第二個圖所示的局面。我們把第一個圖的局面記為&#xff1a;12345678.把第二個圖的局面…

DIV或者DIV里面的圖片水平與垂直居中的方法 - 站住,別跑 - 博客園

DIV或者DIV里面的圖片水平與垂直居中的方法 <div class“box”><img /> </div> 水平居中的常用方式&#xff1a; text-align:center ——這可以實現子元素字體&#xff0c;圖片的水平居中。 margin:0 auto —— 這是針對塊元素的水平居中方法 垂直居中的常…

spring boot的多環境部署

需求&#xff1a;不同的環境有不同的開關屬性&#xff0c;比如開發系統&#xff0c;需要關閉短信&#xff0c;微信的通知功能。而演示環境&#xff0c;線上環境則需要打開這些配置。 那么&#xff0c;如何做到呢&#xff1f;---》在properties.application配置 需要在resources…