|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({
2 x" J3 `- u. X. G1 w5 n9 e - // 选项, f9 q4 F! b& C$ V) H
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
4 D# w8 {1 I/ F5 H4 n - <h1>site : {{site}}</h1>. f6 @0 j- s9 w9 i( S# D2 K6 L
- <h1>url : {{url}}</h1>5 \% |6 ]0 J5 g
- <h1>{{details()}}</h1>
3 ^" Y0 t4 {9 H* U- N, c' i - </div>8 |" o8 y9 n* O; R3 N
- <script type="text/javascript">+ ^$ I; ^# M6 ~7 T8 n
- var vm = new Vue({
5 c' ? H* P& X7 M - el: '#vue_det',! T/ l9 g& G: M3 R' m: g' C
- data: {2 n. }7 i9 F% h$ k
- site: "菜鸟教程",
7 w# I: o$ m# K& C - url: "www.runoob.com",
! o/ P; }' u7 n N9 l( J - alexa: "10000"+ f, _- w! Y% f; Y
- },
5 v! R" @; u+ B - methods: {
, Z- h8 c4 D( d7 x! _; f. | - details: function() {4 Y$ P0 x9 V; e6 U) h0 g) E
- return this.site + " - 学的不仅是技术,更是梦想!";3 U2 T% U, l& a% n) U) r- ]
- } b- r; X4 p) m X" Q
- }) I' o. l) x$ O3 X5 T) S7 p
- })
8 L% u9 d9 _: F; h - </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">
( B+ V# u( |6 ]2 f4 e - <h1>site : {{site}}</h1>* W/ e% w) [/ {9 }3 i
- <h1>url : {{url}}</h1>' y9 D7 T" A4 Z, K
- <h1>{{details()}}</h1>
& ?( y: a6 {. j; ~0 ~4 T - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">) D V0 M3 w, I+ U5 K
- <h1>site : {{site}}</h1>
- K6 E2 _' @) e& } l/ f - <h1>url : {{url}}</h1>9 D B" ]8 Z/ g0 y- x4 a, w
- <h1>Alexa : {{alexa}}</h1># W( p8 G/ j1 g: s
- </div>
6 R( O5 ^2 z0 b* n# W! L# ? - <script type="text/javascript">* @8 a- s. E7 K" Y. x
- // 我们的数据对象
* w* f0 H+ O: b7 _- `* _ - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
( m1 B# w% u6 Z - var vm = new Vue({
/ V" ~4 a$ W( x3 I4 i' q - el: '#vue_det'," x8 g( J9 P3 V5 d$ Z) F8 S
- data: data" g: x: b$ Q n: L/ ^& B) Z3 x
- })( X G! y2 L! K/ F" m5 k/ ]
- // 它们引用相同的对象!
% d- _8 K* M; }+ F2 E8 ] - document.write(vm.a === data.a) // true
& k8 e/ X* \- X3 f |# R. x - document.write("<br>")
) @0 V( M# g0 j# v W3 L x - // 设置属性也会影响到原始数据5 I* y8 T5 d6 W$ R1 ~ J" V1 j
- vm.site = "Runoob"
1 m8 S; t# l/ v5 Y; G: d - document.write(data.site + "<br>") // Runoob
, S O( r4 a$ X' O8 L8 q2 T% v - $ |; G6 Y- @5 K' F
- // ……反之亦然
0 m! R0 G5 B0 m6 o& [ - data.alexa = 1234" R! i& s* ?; G) s9 A
- document.write(vm.alexa) // 1234
$ {+ h! _% w2 M0 u - </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">
% r! f) g `$ P j! ~ - <h1>site : {{site}}</h1>9 S2 @5 [& u0 p
- <h1>url : {{url}}</h1>
& L7 ? y7 q f3 n7 c - <h1>Alexa : {{alexa}}</h1>
! ]+ t; X/ |9 K- m3 E \' ` - </div>
, ~! o7 O; t' s& R& s! _ - <script type="text/javascript">6 j9 i* s7 R8 Q' P- a
- // 我们的数据对象
8 j, _8 T$ \5 ]7 U, m2 Z% F s - var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000} R+ R5 O% ^( D+ N3 N$ d ^. D
- var vm = new Vue({
8 ^( R7 _6 t C9 n9 N5 b1 G - el: '#vue_det',4 O0 K9 a1 O" b, \+ ]3 i2 I
- data: data
) s+ \: i) e2 K J - })3 K9 T7 t+ l8 v+ L V
-
' [# C) H3 P: a& T; @* Z1 ] - document.write(vm.$data === data) // true
2 g+ R2 ]2 D3 F z# ? - document.write("<br>") // true8 O3 S2 e2 D/ q% `! b5 f. a( ^2 r
- document.write(vm.$el === document.getElementById('vue_det')) // true% u$ `8 [- S. Y. t
- </script>
复制代码
+ }, Q5 Q5 \8 ?5 K* T0 m) a$ Y0 ?1 K7 x& g, S+ U2 P
|