vue中響應(yīng)的數(shù)據(jù)綁定和視圖組件/基本用法

組建的兩個(gè)核心點(diǎn)
1.響應(yīng)式數(shù)據(jù)綁定 2.組合的視圖組件

核心點(diǎn)圖
數(shù)據(jù)---vm視圖模型---數(shù)據(jù)渲染的頁面

根據(jù)MVVM模式解釋雙向綁定數(shù)據(jù)例子

  <!DOCTYPE html>
  <html lang="en">
     <head>
<meta charset="UTF-8">
<title>雙向綁定數(shù)據(jù)</title>
<script type="text/javascript" src="vue.js"></script>
  </head>
  <body>

<!-- 視圖模板 -->
<div id="demo">
  <input type="text" v-model="message"/>
   <p>{{message}}</p>
</div>

<script>
 // 數(shù)據(jù)模型
   let data={
    message:'Hello World!'
   }

   // 視圖模型
    var vm=new Vue({
        el:'#demo',
        data:data
    });
    console.log(vm)
</script>
  </body>
  </html>
vue.js入門實(shí)例,詳細(xì)解說

每個(gè) Vue.js 應(yīng)用都是通過構(gòu)造函數(shù) Vue 創(chuàng)建一個(gè) Vue 的實(shí)例

var vm = new Vue({
// 數(shù)據(jù)州藕、模板榨馁、掛載元素憨栽、方法、生命周期鉤子等選項(xiàng)
})

常見的幾個(gè):
<strong>data</strong> 類型 Object | Function
<strong>methods</strong> 類型 { [key: string]: Function }
<strong>el</strong> 類型 string | HTMLElement
<strong>template</strong> 類型 string
具體查看API

實(shí)例

  <!DOCTYPE html>
  <html lang="en">
  <head>
<meta charset="UTF-8">
<title>vue.js入門實(shí)例</title>
<script type="text/javascript" src="vue.js"></script>
  </head>
  <body>
<!-- 模板 -->
<div id="demo">
    <span v-on:click="evenClick">{{message}}</span>
</div>
<script>
// 數(shù)據(jù)
    let data={
        message:'Hello World!'
    }
// 視圖模型
//聲明式渲染翼虫,只需要掛載選擇器將數(shù)據(jù)渲染到模板
    var vm=new Vue({
       el:'#demo',
       data:data,
       methods:{
        evenClick(){
            alert('Hello World')
        }
       }
    })
</script>
  </body>
  </html>

聲明式渲染【如上&& vue常用】 PS 命令式渲染【原生】
聲明式渲染 : 只要關(guān)心在哪里(where)做什么(what)無需關(guān)心如何實(shí)現(xiàn)的(how)
命令式渲染:what +where+how

舉例:給數(shù)組每個(gè)數(shù)字乘以2

聲明式渲染【也可以如上實(shí)例中的舉例】

  <!DOCTYPE html>
  <html lang="en">
  <head>
<meta charset="UTF-8">
<title>聲明式渲染</title>
<script type="text/javascript" src="vue.js"></script>
  </head>
  <body>
<script>
    var arr=[1,2,3,4,5];
    var newArr=arr.map(function(item){
           return item*2
        });
    console.log(newArr)

</script>
  </body>
  </html>

命令式渲染

  <!DOCTYPE html>
  <html lang="en">
  <head>
<meta charset="UTF-8">
<title>命令式渲染</title>
<script type="text/javascript" src="vue.js"></script>
  </head>
  <body>
<script>
    var arr=[1,2,3,4,5];
    var newArr=[];
    for(var i=0;i<arr.length;i++){
        newArr.push(arr[i]*2)
    };
    console.log(newArr)
</script>
</body>
</html>

內(nèi)置指令

內(nèi)置指令

模板

模板:【三類】
1.html模板:基于DOM模板屑柔,模板是可解析的有效的Html
2.template字符串模板:模板將會(huì)替換掛載的元素,掛載元素的內(nèi)容都將被忽略 // 根節(jié)點(diǎn)只有一個(gè) //將html結(jié)構(gòu)寫在一對script標(biāo)簽中珍剑,這只為type="x-template"
3.模板---render函數(shù)

三個(gè)模板舉例:

html模板
  <!DOCTYPE html>
  <html lang="en">
  <head>
<meta charset="UTF-8">
<title>html模板</title>
<script type="text/javascript" src="vue.js"></script>
 </head>
 <body>
 <div id="demo">
<div v-html="html"></div>
</div>
<script>
let obj={
    html:"<div>Hello World</div>"
}
var vm=new Vue({
  el:"#demo",
  data:obj

});
  </script>
  </body>
 </html>
template字符串模板【兩種方式】
  <!DOCTYPE html>
  <html lang="en">
  <head>
<meta charset="UTF-8">
<title>template模板1</title>
<script type="text/javascript" src="vue.js"></script>
</head>
<body>
<div id="demo">
<div>Hello</div>
</div>
<script>
var str="<div>Hello World</div>";
var vm=new Vue({
  el:"#demo",
  template:str
});
// 頁面渲染結(jié)果是Hello World 而不是Hello,原因是template的權(quán)重較高
//var str ="只能包含一個(gè)div,或者div里面嵌套div等其他元素掸宛,不能并列"  
//在es6語法中,可以寫成var  str=` `;【該符號(hào)在鍵盤上1的左邊切換到英文模式】這種方式的好處是可以換行 
</script>
</body>
</html>

 <!DOCTYPE html>
 <html lang="en">
 <head>
<meta charset="UTF-8">
<title>template2模板</title>
<script type="text/javascript" src="vue.js"></script>
</head>
<body>
<div id="demo">
<div>Hello</div>
</div>
<script type="x-template" id="temp">
<div>Hello World</div>
</script>
<script>
  var vm=new Vue({
  el:"#demo",
  template:"#temp"
});
   //引入模板引擎次慢,只能在本頁面復(fù)用
</script>
</body>
</html>
模板---render函數(shù)

render 類型 function
render 函數(shù)接收一個(gè) createElement 方法作為第一個(gè)參數(shù)用來創(chuàng)建 VNode
createElement(標(biāo)簽名,[數(shù)據(jù)對象],子元素)
數(shù)據(jù)對象屬性:

class:{} 綁定class,和v-blind:class 一樣的API
style:{} 綁定class,和v-blind:style 一樣的API
attrs:{} 添加行間屬性
domProps:{} DOM元素屬性
on:{} 綁定事件

  <!DOCTYPE html>
  <html lang="en">
  <head>
<meta charset="UTF-8">
<title>template2模板</title>
<script type="text/javascript" src="vue.js"></script>
<style type="text/css">
.yellow{
    background-color: yellow
    }
</style>
</head>
<body>
<div id="demo"></div>
<script>
   var vm=new Vue({
  el:"#demo",
  render(createElement){
     var obj=createElement(
          "ul",
          {
            class:{
                yellow:true
            },
            style:{
                fontSize:"50px"
            },
            attrs:{
                type:"text",
                name:"email"
            }
          },
          [
            createElement("li",1),
            createElement("li",2),
            createElement("li",3)
          ]
        );
  console.log(obj)
  return obj;
 
  }
});
 </script>
 </body>
 </html>

總結(jié):
1.漸進(jìn)式框架Vue
2.vue中兩個(gè)核心點(diǎn)
3.虛擬DOM
4.MVVM模式
5.Vue實(shí)例

6.聲明式渲染
7.指令
8.模板
參考視頻教程

請看第二節(jié)實(shí)現(xiàn)動(dòng)態(tài)添加刪除數(shù)據(jù)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末旁涤,一起剝皮案震驚了整個(gè)濱河市翔曲,隨后出現(xiàn)的幾起案子迫像,更是在濱河造成了極大的恐慌,老刑警劉巖瞳遍,帶你破解...
    沈念sama閱讀 216,496評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件闻妓,死亡現(xiàn)場離奇詭異,居然都是意外死亡掠械,警方通過查閱死者的電腦和手機(jī)由缆,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,407評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門注祖,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人均唉,你說我怎么就攤上這事是晨。” “怎么了舔箭?”我有些...
    開封第一講書人閱讀 162,632評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵罩缴,是天一觀的道長。 經(jīng)常有香客問我层扶,道長箫章,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,180評(píng)論 1 292
  • 正文 為了忘掉前任镜会,我火速辦了婚禮檬寂,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘戳表。我一直安慰自己桶至,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,198評(píng)論 6 388
  • 文/花漫 我一把揭開白布匾旭。 她就那樣靜靜地躺著塞茅,像睡著了一般。 火紅的嫁衣襯著肌膚如雪季率。 梳的紋絲不亂的頭發(fā)上野瘦,一...
    開封第一講書人閱讀 51,165評(píng)論 1 299
  • 那天,我揣著相機(jī)與錄音飒泻,去河邊找鬼鞭光。 笑死,一個(gè)胖子當(dāng)著我的面吹牛泞遗,可吹牛的內(nèi)容都是我干的惰许。 我是一名探鬼主播,決...
    沈念sama閱讀 40,052評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼史辙,長吁一口氣:“原來是場噩夢啊……” “哼汹买!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起聊倔,我...
    開封第一講書人閱讀 38,910評(píng)論 0 274
  • 序言:老撾萬榮一對情侶失蹤晦毙,失蹤者是張志新(化名)和其女友劉穎,沒想到半個(gè)月后耙蔑,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體见妒,經(jīng)...
    沈念sama閱讀 45,324評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,542評(píng)論 2 332
  • 正文 我和宋清朗相戀三年甸陌,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了须揣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片盐股。...
    茶點(diǎn)故事閱讀 39,711評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖耻卡,靈堂內(nèi)的尸體忽然破棺而出疯汁,到底是詐尸還是另有隱情,我是刑警寧澤卵酪,帶...
    沈念sama閱讀 35,424評(píng)論 5 343
  • 正文 年R本政府宣布涛目,位于F島的核電站,受9級(jí)特大地震影響凛澎,放射性物質(zhì)發(fā)生泄漏霹肝。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,017評(píng)論 3 326
  • 文/蒙蒙 一塑煎、第九天 我趴在偏房一處隱蔽的房頂上張望沫换。 院中可真熱鬧,春花似錦最铁、人聲如沸讯赏。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,668評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽漱挎。三九已至,卻和暖如春雀哨,著一層夾襖步出監(jiān)牢的瞬間磕谅,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,823評(píng)論 1 269
  • 我被黑心中介騙來泰國打工雾棺, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留膊夹,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 47,722評(píng)論 2 368
  • 正文 我出身青樓捌浩,卻偏偏與公主長得像放刨,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個(gè)殘疾皇子尸饺,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,611評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容

  • 這篇筆記主要包含 Vue 2 不同于 Vue 1 或者特有的內(nèi)容进统,還有我對于 Vue 1.0 印象不深的內(nèi)容。關(guān)于...
    云之外閱讀 5,048評(píng)論 0 29
  • Vue 實(shí)例 屬性和方法 每個(gè) Vue 實(shí)例都會(huì)代理其 data 對象里所有的屬性:var data = { a:...
    云之外閱讀 2,207評(píng)論 0 6
  • 1.安裝 可以簡單地在頁面引入Vue.js作為獨(dú)立版本浪听,Vue即被注冊為全局變量螟碎,可以在頁面使用了。 如果希望搭建...
    Awey閱讀 11,014評(píng)論 4 129
  • Spring Cloud為開發(fā)人員提供了快速構(gòu)建分布式系統(tǒng)中一些常見模式的工具(例如配置管理馋辈,服務(wù)發(fā)現(xiàn)抚芦,斷路器,智...
    卡卡羅2017閱讀 134,651評(píng)論 18 139
  • 回來的列車上褥民,我聽著荔枝FM里面你為我錄的節(jié)目音頻。那熟悉的旋律和聲音洗搂,告訴我消返,今天我該把那份記憶藏起來了! 分開...
    蝦說閱讀 208評(píng)論 0 0