|
Vue.js 起步 每个 Vue 应用都需要通过实例化 Vue 来实现。 语法格式如下: - var vm = new Vue({$ |2 {/ A2 J8 y0 A+ x
- // 选项5 ?# M$ i9 V. @! B1 t
- })
复制代码接下来让我们通过实例来看下 Vue 构造器中需要哪些内容: - <div id="vue_det">
" y7 y8 C$ N) u6 Z: ? - <h1>site : {{site}}</h1>; I5 u! V/ o& E+ N% p- F
- <h1>url : {{url}}</h1># X0 ^* J& \0 t- ]3 t
- <h1>{{details()}}</h1>) g1 j8 r, T) f) H6 |9 E) h8 r
- </div>
) h$ E& C4 b1 i! ~. v$ \* n4 E - <script type="text/javascript">
7 D3 x: K n) F, j, L& i - var vm = new Vue({
, y {% d9 }- `1 x6 u6 g9 a - el: '#vue_det',# \" Z& S' E; N0 ~* @
- data: {
2 c" p' n$ J0 W4 ?7 Z- Q - site: "菜鸟教程",
* w. _; o' R# A - url: "www.runoob.com",) x; l$ P5 b- w( d: j# C' }
- alexa: "10000"
0 c% e! @+ {- o - },
% |% d. r' ? K9 R3 j - methods: {8 t$ t! P8 s# G) m5 z
- details: function() {/ A) {: }! X" ?; C$ V1 r
- return this.site + " - 学的不仅是技术,更是梦想!";4 d% n/ \$ Q6 v' b! y
- }
; _# R9 i- i! i+ A& u- \ - }
4 e6 d& P& s6 E% [- E4 S6 n - })+ L0 Q, d$ |# ~) ^' ?
- </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">
. Q0 S( B$ W6 [- O l" v - <h1>site : {{site}}</h1>1 A5 P# `9 ^- N" l
- <h1>url : {{url}}</h1>
! S' r8 K& D, R" X, A" m% g - <h1>{{details()}}</h1>
# W4 |) _3 t# Z) n; u6 l# V - </div>
复制代码当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。 - <div id="vue_det">
! R1 R. \7 S5 M! i- F* Y; B - <h1>site : {{site}}</h1>1 X. P } K1 Z& V( E8 c5 y, |
- <h1>url : {{url}}</h1>' i6 g. f# A! w$ a
- <h1>Alexa : {{alexa}}</h1>9 g# p" l% N; K- p
- </div>
( _; |. |. d% P4 u1 l - <script type="text/javascript">
! r- e6 ?1 a, k* ` s - // 我们的数据对象; c5 D; B/ f) H( c
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
/ Q, N' v* ~ O( O - var vm = new Vue({
/ O& g! }# w+ v1 ^/ ^ - el: '#vue_det',
; y$ }" ^# {3 J$ {- D- [4 y; x - data: data9 _0 D$ p4 |0 R% r
- })
! [- a3 D/ u7 I9 o) q- a9 h - // 它们引用相同的对象!, z. w: S4 N4 w. L
- document.write(vm.a === data.a) // true+ f& ~- l1 m8 U$ E6 L1 i
- document.write("<br>")
9 V( Y" s j" {. v' J& H% x - // 设置属性也会影响到原始数据$ q! V9 _6 F# Y( l3 j5 ]* A
- vm.site = "Runoob": M/ S& D4 i7 F0 q2 p. X; v
- document.write(data.site + "<br>") // Runoob: _9 k* V6 {3 o
- ( A1 l6 S" ~9 b/ g# P
- // ……反之亦然- k# S2 O5 H7 w; q: \3 ]0 E' w4 D+ F
- data.alexa = 12347 T" d" o& o6 B" C
- document.write(vm.alexa) // 1234/ m2 G1 I8 K M- h
- </script>
复制代码除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如: - <div id="vue_det">9 T9 f {# {+ ?# ^' n3 c5 k
- <h1>site : {{site}}</h1>8 A9 n7 u- @- v% ] h6 V; R" r
- <h1>url : {{url}}</h1>
/ e: L9 \0 @& W! K - <h1>Alexa : {{alexa}}</h1>1 t4 H* s6 L# F! b& h& P
- </div>
5 M5 F6 }7 ^% a3 r0 Q6 `- S - <script type="text/javascript">
# p9 ]3 q1 G! Z* m0 q - // 我们的数据对象1 q& V* v& h- F5 D, p
- var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}# {4 r4 ?* I- z& v
- var vm = new Vue({
, w* X+ }( {4 K8 ?, [! f: `# z5 K - el: '#vue_det',
+ p; _4 m' d5 j& ` - data: data
! v+ N* f9 n; J/ o) m0 m( ~ - })
( c; {* z& p M) z -
- q6 c$ O# o7 t% V' z& T/ }; _: R( V - document.write(vm.$data === data) // true
( W/ k) }! S9 h. H; x - document.write("<br>") // true0 g: }/ @' U' T, x8 i# U
- document.write(vm.$el === document.getElementById('vue_det')) // true7 v/ H Q4 ] J; e& u
- </script>
复制代码
- Y3 h- y6 n9 S$ K7 t* k
2 i0 [) Q9 v, c3 y1 ` |