|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({: E7 a. |. ~$ F( e2 M$ @7 a
- // 选项
2 s+ o7 y& c9 P6 U7 R$ m& v, u5 T4 w - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">1 R `. E2 h+ o; Y0 A: [! c i
- <h1>site : {{site}}</h1>2 Z, p- {& |; Y
- <h1>url : {{url}}</h1>
- V3 _9 E, O8 G- N1 R! D C4 k - <h1>{{details()}}</h1>$ B# I9 ]7 w: Q3 H6 X5 C
- </div>
+ p( ^2 E+ J+ V8 q - <script type="text/javascript">$ q- |/ h) k) y) L9 \8 J: C
- var vm = new Vue({
. o7 n( p/ p7 Y; d% o; q. ^2 j, N - el: '#vue_det',' X# Z) u3 R1 J. }8 h: a& N2 U
- data: {
! U1 s( ^, m2 h - site: "菜鸟教程",
8 e/ k8 V) w) l. t" A' m6 ` - url: "www.runoob.com",
8 e7 n; C4 `. M% Z - alexa: "10000"
$ N. L4 a1 }2 k! ]0 n# x$ g- m - },
8 w" _% h/ t1 g7 b+ _' K' W# ] - methods: {4 W4 C X% [; A4 o% H5 r* j j
- details: function() {7 {" Y, u# z4 i
- return this.site + " - 学的不仅是技术,更是梦想!";
$ J( s9 ]) H# l( }( y& V - }7 M6 s, v. k* X6 j [4 E
- }/ N- x. E) g( Q/ k# p* o
- })
3 J Z7 s% j g; Z8 B3 u - </script>
复制代码可以看到在 Vue 构造器中有一个el 参数,它是 DOM 元素中的 id。在上面实例中 id 为 vue_det,在 div 元素中: - <div id = "vue_det"></div>
复制代码这意味着我们接下来的改动全部在以上指定的 div 内,div 外部不受影响。 接下来我们看看如何定义数据对象。 data 用于定义属性,实例中有三个属性分别为:site、url、alexa。 methods 用于定义的函数,可以通过 return 来返回函数值。 {{ }} 用于输出对象属性和函数返回值。 - <div id="vue_det">6 \0 y0 S0 e. a
- <h1>site : {{site}}</h1>2 B2 c) s( L$ P, Y$ c; a+ ^$ W
- <h1>url : {{url}}</h1>9 L2 \8 A# O1 z2 r7 ~
- <h1>{{details()}}</h1>
]" e4 L# N% d. w G$ {* r* G - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">' }9 D& @: t( X6 Y! e' ~0 _
- <h1>site : {{site}}</h1>8 F$ m+ m3 d- c" q: k
- <h1>url : {{url}}</h1>
% g! ^1 r# \4 U1 d+ I' Z0 N - <h1>Alexa : {{alexa}}</h1>
. e( N0 C/ z* S( a& l, k8 x - </div>$ q4 d( j# F- c2 H q: _* v$ A D
- <script type="text/javascript">
* C8 V$ b- M- X& n7 P* C: | - // 我们的数据对象' Q5 f4 Y5 T$ d* Q; T% S
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
" Y4 G4 z# Q! R8 g* [ - var vm = new Vue({
# }% v! R- X0 z7 |8 Z6 h* J& c - el: '#vue_det',4 `$ w4 G% i( o) g! z
- data: data, j" {# Q; k" ?
- })
8 i3 r1 v0 Y9 E - // 它们引用相同的对象!3 G' W7 z* w! q, X1 B
- document.write(vm.a === data.a) // true) ~: f& v9 d) B8 }# `4 [+ g: A! W
- document.write("<br>"); {) u. l F" Y3 `& d; ]+ l& j- [
- // 设置属性也会影响到原始数据
% _( |! o/ v9 Y; ^* f2 V( y5 s/ e - vm.site = "Runoob"
$ @$ r3 r6 G6 i1 B0 K, o4 k - document.write(data.site + "<br>") // Runoob
4 h3 f9 j! m0 e8 N6 G - 7 N1 [1 q9 ]# ?1 J
- // ……反之亦然
. Y% v) G G' e0 g- c - data.alexa = 1234
$ a2 V, h5 H" W+ z) H - document.write(vm.alexa) // 1234' m4 T' {) q& T
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
, V A) |) `" J, t. m, s - <h1>site : {{site}}</h1>
8 y+ R, t* ^! l, }! ? - <h1>url : {{url}}</h1>
2 r% v9 q* Z6 w8 u- E" ], s - <h1>Alexa : {{alexa}}</h1> [3 ~ } J- G! A0 `
- </div>
$ \8 m( g. @( o$ {, S - <script type="text/javascript"># ?5 H+ t- V* h% P. I: O- ~
- // 我们的数据对象
, f" u: J' u6 v* w/ V* e - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000} k0 ^4 ?* {$ w+ L4 W$ J
- var vm = new Vue({
, A2 @" g9 d7 y3 A2 V# v2 v - el: '#vue_det',
: ^. L% T5 u3 I& D7 Y% U V - data: data
' e7 M% I1 j. m8 M2 Z1 v - })) i+ a5 b) ?; q) g7 }1 T) _8 M7 f
-
8 I6 ?& c" o: V4 m. q7 z - document.write(vm.$data === data) // true) q0 `; [% Q, a5 t
- document.write("<br>") // true
+ f! r0 L+ ]6 \+ E - document.write(vm.$el === document.getElementById('vue_det')) // true) |; o4 g( K+ J) ?" Q d
- </script>
复制代码 ( g5 J. H8 O2 ] |& @% e
2 z! B0 C- G4 [7 W9 t
|