|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({, U3 X3 R! B c3 B8 q6 W) f' `
- // 选项
3 ]' }& L; C/ j# r% S. ? - })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
$ k! x- Z' I2 t: O: S - <h1>site : {{site}}</h1>/ _/ ?( R' V5 R$ p- v3 V% q: }3 V
- <h1>url : {{url}}</h1> c+ V+ {+ T5 K- `: p
- <h1>{{details()}}</h1>8 d0 ]$ E: V S7 b! c8 T1 j) p( z
- </div>
7 A! z/ h* ]+ W7 f& x - <script type="text/javascript">
# s8 ]% o7 _- O; }) f! f - var vm = new Vue({. ?5 C0 [8 S% B$ S% T3 N! F
- el: '#vue_det',5 |8 X3 e/ o: Z/ k6 n; U- X! F2 m
- data: {' B% T& ^ r* u# }0 H m
- site: "菜鸟教程",
: y) i' j0 o" a3 c( i - url: "www.runoob.com",) I* U$ R$ G5 c; N
- alexa: "10000"4 m% q' a) U. u, A( [
- },
; Q2 Q. p1 o% K4 Y3 U3 o7 } - methods: {
1 z! G' m# R: q0 X# |% \3 e - details: function() {
! k; C- Q3 ~9 r! ?( T2 S9 e4 v - return this.site + " - 学的不仅是技术,更是梦想!";* S( L6 t+ a6 F0 ^& ?1 f9 q
- }) N! l8 \% j9 H4 _2 A& y# t
- }
* p% V3 a' |8 N$ d9 ^9 f1 H+ D" B$ x+ | - })
' l y% c! n$ C2 G1 E* k# L - </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">4 S' ~0 [0 m; S+ n2 [( ~' Y
- <h1>site : {{site}}</h1>; c; Q4 C8 ]6 d4 } w( n
- <h1>url : {{url}}</h1>
. `) ?8 f( f& g7 @; d - <h1>{{details()}}</h1>. N b5 ^) j" D6 b
- </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">& W2 X. t' @9 i( l( a( J3 ?" p% n
- <h1>site : {{site}}</h1>! b- m. c; ~- w$ r
- <h1>url : {{url}}</h1>
/ Z! Y# N% V7 \' h% b - <h1>Alexa : {{alexa}}</h1>
4 z3 e/ k# w8 |" ?1 i- X: g - </div>/ i* w3 Y1 p! \& c2 H" ]: c
- <script type="text/javascript">
3 a9 N' k M8 ^7 m! ^ - // 我们的数据对象& U! ^8 ?+ g7 ^, a3 A4 Z
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}; `5 H) d' G; j2 ]: R1 k# W) \
- var vm = new Vue({- ^' L! \; A [" B5 v$ [
- el: '#vue_det',$ m. T0 M2 r" {; }
- data: data
/ C: N, t" p$ \7 m8 Q# Z - })$ B9 `$ Z8 u: F( M
- // 它们引用相同的对象!
, G5 O2 r& s- M, K& ` - document.write(vm.a === data.a) // true
# Y1 x5 k: W1 B) ~ - document.write("<br>")
# N M% U, A8 [$ `8 R8 x1 P2 m - // 设置属性也会影响到原始数据9 ]- j2 f) c8 \0 X4 N' f- f$ ]
- vm.site = "Runoob"
6 p/ w& |& U2 v: B - document.write(data.site + "<br>") // Runoob
+ C p% y& @; i* t - " c8 q( F' L, e& B" L
- // ……反之亦然
1 e7 |7 {6 F# d/ X0 O - data.alexa = 12346 S4 _7 Q6 V' V% B8 n
- document.write(vm.alexa) // 1234! K' k4 j0 w6 r! @' I- j
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">9 a( ~0 K! o7 g7 n
- <h1>site : {{site}}</h1>" l' B! U6 U5 _7 \
- <h1>url : {{url}}</h1>
8 h/ {+ T/ k" G" `4 a8 r) T3 P - <h1>Alexa : {{alexa}}</h1>
- e$ Q$ |0 f% Z; V6 K h8 @9 F - </div>
5 W+ z/ g- _, j+ Y - <script type="text/javascript">
% F: {! k/ \" k - // 我们的数据对象
$ Z. [ z' ]- `3 |1 [ O* O9 `5 F! R4 x - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
) \, i3 T; F4 B - var vm = new Vue({8 i8 X( R( V+ y& V& k3 {! L
- el: '#vue_det',
8 K# H$ C* m c% V' ~. I& g/ [ - data: data2 x4 P& E6 T4 o3 h; Z
- })
. D! ?# O6 i) u2 i3 K6 j; `: F6 c/ C -
7 }& n/ ~4 c9 i5 s& S - document.write(vm.$data === data) // true K# l) K8 P& J2 r9 x$ ~, `3 o+ a
- document.write("<br>") // true9 F1 u% K0 V$ r$ x
- document.write(vm.$el === document.getElementById('vue_det')) // true$ n. c4 I, W$ T! c
- </script>
复制代码
! z0 O, Q$ E4 `4 h! D d) t$ R3 O9 n! I# O! o3 m/ U4 c) h% s' x
|