|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
) B1 n g6 B7 G - // 选项6 i, S, l8 L, ^2 a' | k
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
: R& K: E$ K* K - <h1>site : {{site}}</h1>- R( q3 @) I4 L- K; r; b( q/ I
- <h1>url : {{url}}</h1>2 O7 r* ^; _3 }" i5 `$ o1 F
- <h1>{{details()}}</h1>
& n4 ~! N; k& i - </div>
) N* L$ \& s" D7 A* R ^6 o; p - <script type="text/javascript">
5 e& t6 I1 F% s, G/ b- [3 l - var vm = new Vue({, g; h8 O* I: r G0 v) J9 s( d* k
- el: '#vue_det',# W5 D) \8 ^3 D, {
- data: {" I% p# g2 x% K% p7 u! { C
- site: "菜鸟教程",+ O: \* Q( T, U, P1 Y
- url: "www.runoob.com",1 _- t: I' V4 C/ A. H3 \
- alexa: "10000"' ` u- T# j: K, Z, _' B
- },5 M6 j* a7 s$ k' k1 W/ h
- methods: {
+ E+ e1 V+ O1 r& q/ a7 t - details: function() {$ \% R7 K. h7 c3 l! g* [1 E
- return this.site + " - 学的不仅是技术,更是梦想!";
2 L( K4 `: N, X m$ o; N, S& D - }
) A% R( n- R7 \% J$ _ - }
2 g# ?; j4 D+ R D - })
% L9 n/ f; Q I( N% 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">( m$ x( M' U2 R% A$ Z3 C* Y
- <h1>site : {{site}}</h1>1 P# i+ [1 k2 y0 ?
- <h1>url : {{url}}</h1>. u" A) Z, W, }7 _: O* G6 K
- <h1>{{details()}}</h1>8 q- Z. l- h6 ~4 J% z$ h
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
) t7 H t1 i- k - <h1>site : {{site}}</h1>
* g+ V2 f% e5 n; E5 S" V - <h1>url : {{url}}</h1>
! n# h0 C& H1 x3 d+ E3 h0 W ^ - <h1>Alexa : {{alexa}}</h1>
9 Z! z9 J- r& H7 M: w - </div>
; `+ K6 ?3 P# S: z - <script type="text/javascript">
) z% {+ a7 r4 A9 G: m9 H% \8 t+ A - // 我们的数据对象4 D' J9 }. y2 [' y! A* r% c1 V# h
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
) b$ I' c2 j( v - var vm = new Vue({, \7 K# i7 A4 r$ q
- el: '#vue_det',4 y" o4 z* S7 s
- data: data
- ?4 d, [# {/ P3 L+ k _ - })( W2 X* Z1 ^1 h% d1 c( w$ _9 W
- // 它们引用相同的对象!, T# W6 e' g& U. Z
- document.write(vm.a === data.a) // true
$ W' |* C8 O Q; o - document.write("<br>")
1 G7 \7 p! s) U1 t9 a - // 设置属性也会影响到原始数据
+ b( S4 d! X# \; b; q# Q - vm.site = "Runoob"9 X' a) i, \+ p. w- U
- document.write(data.site + "<br>") // Runoob; F* E/ H/ \$ u( O. v+ u3 |
-
) Y) P! [7 O6 ~3 x4 R; V) \ - // ……反之亦然: k1 V0 w4 \" e% ^* Q
- data.alexa = 1234
" L1 t9 g& ~; {9 F; d - document.write(vm.alexa) // 1234+ h' F# \, B. b
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
, ]$ Q) M9 i+ {5 M4 }5 @ - <h1>site : {{site}}</h1>% k0 W& C0 `2 q/ F& m1 r
- <h1>url : {{url}}</h1>
9 R1 w* ~% V' N q - <h1>Alexa : {{alexa}}</h1>& H4 m% a- l: ? z/ H
- </div>
$ T5 H. i" I: Y) j* a# ^ - <script type="text/javascript">
% A; f4 {) T. ^ g! \! ` - // 我们的数据对象
& u3 d3 l3 u4 h+ m' {: I/ W$ D. @ - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}8 P/ ?. Y- c5 H" o7 s
- var vm = new Vue({
/ @$ t, o7 E6 j8 O6 U - el: '#vue_det',! ?: C& V& B! R
- data: data
) F6 Z5 a9 b8 @ - })" `/ j/ X& x+ e( j' k, d
-
4 C0 q! A: ~6 e$ g" u - document.write(vm.$data === data) // true2 H. a( }% `" y
- document.write("<br>") // true! ?* H7 v8 O6 [/ a9 Y
- document.write(vm.$el === document.getElementById('vue_det')) // true
2 Q( @$ Y; E: d+ Y+ N# k. X - </script>
复制代码 ' t7 e1 T( C9 B6 ]' \- _8 B8 D7 o
/ _7 |; o9 T; J' h h8 L0 I; c; t9 f |