|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
# A% _, S; e0 O) Y1 x( E - // 选项2 ^2 y0 v" i! [
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">$ i0 s0 y. v, E9 e6 e
- <h1>site : {{site}}</h1>
8 D) a! O! h: ~/ D - <h1>url : {{url}}</h1>
$ y, ^5 i0 s3 K5 L$ o - <h1>{{details()}}</h1>
* ]+ d7 h6 M9 n& x - </div>
( c! i- K6 u3 w - <script type="text/javascript">9 P7 m/ q o' @2 E
- var vm = new Vue({) P' m7 M4 m. e% \
- el: '#vue_det',- I/ V, \+ o$ d0 D: ?* {- i% a
- data: {8 S* |" n/ |5 c7 p5 T* l" t, O
- site: "菜鸟教程",, G$ U& B0 `8 x
- url: "www.runoob.com",
* x4 F& }6 I7 D - alexa: "10000": H% C4 G. X6 [
- },% q4 s: ^2 j( s( `9 s
- methods: {0 } u( W2 y7 y. M" V8 t5 R
- details: function() {: G" k% h1 l6 A0 h, `
- return this.site + " - 学的不仅是技术,更是梦想!";7 \7 b7 D& u2 S9 A' P
- }
0 X: N5 h5 l; M. x S4 F - }
4 I2 s- G) B( C' H5 n# x' Y1 n - })' j/ O% w+ A0 O/ a6 _/ f
- </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">; p, ]% o* @& r, D4 b
- <h1>site : {{site}}</h1>! j- | R7 n' a2 J( z3 r( l8 g% A8 ]
- <h1>url : {{url}}</h1>3 _2 p6 x( f5 }; S4 ]# g$ {
- <h1>{{details()}}</h1>
" T y, ]* K4 t! |3 j) d - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">! C5 c* G9 F3 k
- <h1>site : {{site}}</h1>4 O1 ?% D' ?) H" ]
- <h1>url : {{url}}</h1>- {" V" E. H: c6 ?3 L
- <h1>Alexa : {{alexa}}</h1>
- l6 g ]+ w( Q" P2 j- G( N: q% A$ u' l - </div>7 `( w9 q d0 x( C5 a
- <script type="text/javascript">% U# W+ G$ W/ f: [* p0 U4 X4 i6 p
- // 我们的数据对象- v8 o7 W- M1 z# U2 `$ R
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}' _( \3 H' z( v T. {) L- Y: j3 I
- var vm = new Vue({
3 Z" E: {) ~5 |1 e# H. F' w: S: b8 F - el: '#vue_det',1 D- x2 N" n; }" ^9 Z7 T3 ^3 f* J
- data: data
- g1 B; S$ p6 l! D2 u) Z b - }): b/ |. D" v3 a. N+ v" a
- // 它们引用相同的对象!
6 j$ j5 M# J' c+ O! Y7 r& U7 u - document.write(vm.a === data.a) // true: _# i, h6 u( q# k; J
- document.write("<br>")9 l* g* a* c& ~; m: ]% F& U9 _" j9 }
- // 设置属性也会影响到原始数据
: e! {# \, H( t- @2 ?0 c5 ` - vm.site = "Runoob"% M( {6 h) ]0 p7 O
- document.write(data.site + "<br>") // Runoob3 [* Z6 w5 N' j1 m& _9 E8 H3 A
-
! y3 o4 Q# M+ d' E: H# g' H6 W% ? - // ……反之亦然/ k* @- \9 G# d
- data.alexa = 1234: w; ~- ?' w q$ \8 R2 e
- document.write(vm.alexa) // 1234
# q4 R. c8 j- k2 a - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
* s, h/ R v; n+ h - <h1>site : {{site}}</h1>
% E6 J$ N7 F, c8 \+ i9 o/ @& ^ - <h1>url : {{url}}</h1>
C0 o |* P+ W( l. J& B - <h1>Alexa : {{alexa}}</h1>
) S/ z5 G; u8 H8 g% [ - </div>
) r% O! K( Q* O$ l - <script type="text/javascript">8 S' @3 v, n+ |4 x3 \
- // 我们的数据对象
, W: N, E- h1 P3 O - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
: M* z1 {+ \ ?1 R* }( G, ~0 V; G - var vm = new Vue({
3 }/ W1 ~3 z+ Q1 m7 t' @ - el: '#vue_det', g9 j, V0 A4 v; Z. W0 r2 \3 b' U
- data: data$ z3 h+ @$ i4 z
- })( U- N, Y& L- U4 `
-
3 H- d; W+ c! L* q% e) j9 f/ \ - document.write(vm.$data === data) // true& f% Y% N! K: @5 |3 P& n2 N E
- document.write("<br>") // true- n' r3 {6 Y& `9 K1 W
- document.write(vm.$el === document.getElementById('vue_det')) // true
! B9 m; V( `6 | - </script>
复制代码 * |2 a, j2 J, Q$ s
' |! M; m9 k0 _- D. u, h
|