cncml手绘网

标题: Vue.js 起步 [打印本页]

作者: admin    时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({& a$ K3 Z; a7 a! b
  2.   // 选项
    8 n# n5 G: ~( \' l$ N$ L
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">8 u0 g2 R  z+ d5 E' J
  2.     <h1>site : {{site}}</h1>
    . E  ?# A2 j3 @& E5 R* j* Q  H
  3.     <h1>url : {{url}}</h1>
    * ^: _% u" j8 W2 c( d
  4.     <h1>{{details()}}</h1>; O+ h) {: N6 i7 W# E
  5. </div>
    ! }* o9 r* _, M
  6. <script type="text/javascript">
    ! E1 s) n2 f/ }4 a; h
  7.     var vm = new Vue({
    # w8 u; {' I- z7 u5 ^% _
  8.         el: '#vue_det',1 h. R7 d1 i) A3 A9 A
  9.         data: {  m9 [8 G( i  s1 K) y; i
  10.             site: "菜鸟教程",
    9 h+ Z- N$ \/ }- r, @( w  W0 a
  11.             url: "www.runoob.com",6 @; g; C6 o7 W2 a$ I5 [2 w
  12.             alexa: "10000"
    ; f  B, P3 V+ G# X  |" v
  13.         },
    2 o+ `3 J0 I$ w% ?9 W  W
  14.         methods: {
    2 H; b4 j: q8 ^
  15.             details: function() {
    , |: m7 [* d, ^: I% R6 c
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";5 s0 o# N) K2 u8 S( J- ^
  17.             }+ H! @1 l4 ^, q: w0 U
  18.         }
    5 q' P% g' p9 J) D1 R' ~/ }: Q
  19.     })
    8 W* F5 J8 f. x3 ]) B
  20. </script>
复制代码
可以看到在 Vue 构造器中有一个el 参数,它是 DOM 元素中的 id。在上面实例中 id 为 vue_det,在 div 元素中:
  1. <div id = "vue_det"></div>
复制代码
这意味着我们接下来的改动全部在以上指定的 div 内,div 外部不受影响。
接下来我们看看如何定义数据对象。
data 用于定义属性,实例中有三个属性分别为:site、url、alexa。
methods 用于定义的函数,可以通过 return 来返回函数值。
{{ }} 用于输出对象属性和函数返回值。
  1. <div id="vue_det">
    : ]& K# j) z" }9 y
  2.     <h1>site : {{site}}</h1>- l4 a* O! s; j4 n9 w
  3.     <h1>url : {{url}}</h1>, p) n) ^1 U; F3 Y( t  H
  4.     <h1>{{details()}}</h1>. x: t9 l! t5 b4 F& n* e. ?
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">: O$ m$ K* x/ R2 T# L7 y+ y
  2.     <h1>site : {{site}}</h1>
    ! l' C; S( ~$ }2 y- W
  3.     <h1>url : {{url}}</h1>
    0 b* Y% Q9 G5 K
  4.     <h1>Alexa : {{alexa}}</h1>7 R! |) N7 z6 T- P& o
  5. </div>9 {2 ]9 ?; {; O! i5 O
  6. <script type="text/javascript">
    / |3 N  A5 Z" W# U. [
  7. // 我们的数据对象( E6 R3 P8 a3 L8 A; C4 h8 ~
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    & \- F5 P& f+ R  ?$ [* B: O
  9. var vm = new Vue({
    * R2 R6 a" c! t* m# r5 X
  10.     el: '#vue_det',
    / p$ F$ d. m0 v$ r1 f+ }
  11.     data: data
    ' z7 h. A; X6 c4 S( w% m
  12. })
    1 |. G2 c" F, N. i
  13. // 它们引用相同的对象!4 t5 m6 c. O8 B9 \7 [
  14. document.write(vm.a === data.a) // true
    5 t3 w, j2 n! R7 F1 T7 D% K
  15. document.write("<br>")
    * g9 Y2 Q* }  i
  16. // 设置属性也会影响到原始数据
    4 {* ~( J! G& t, l
  17. vm.site = "Runoob"
    + F& \; y8 I* r; o/ u
  18. document.write(data.site + "<br>") // Runoob$ j& F" G0 A1 v* d, Q& c: E

  19. & e* j+ a! y/ p) t- n4 Y2 X8 ^
  20. // ……反之亦然/ `' d1 ~* z. U8 p4 g
  21. data.alexa = 1234
    " A  P6 S/ H3 y) E  s5 X# f
  22. document.write(vm.alexa) // 1234
    3 H' {$ I5 L8 ?* ~. _; L% i
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    9 r8 r+ \. w9 Z
  2.     <h1>site : {{site}}</h1>
    . g+ |0 u% w# c6 U8 g& I& T2 ~
  3.     <h1>url : {{url}}</h1>
      _7 v0 s6 r/ u, R2 A. j0 E
  4.     <h1>Alexa : {{alexa}}</h1>. U1 y8 k3 ]5 n' o6 ?* c: R
  5. </div>/ ?) J( Z0 ~7 e; p: o' m. M
  6. <script type="text/javascript">
    . J- O4 g+ _# n1 m0 @$ J* `: p' m
  7. // 我们的数据对象3 e9 e3 V5 |: `5 d8 k+ x( p  |
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    4 j1 e/ w+ {6 @8 _  A
  9. var vm = new Vue({7 n* \6 v' b0 j6 I& `. m
  10.     el: '#vue_det',8 q$ H: T) _0 X5 w9 ?# l
  11.     data: data
    2 C0 E( P3 E5 s9 w, H6 o% I9 V
  12. })" g1 j' l+ w' W
  13. ; W) T* q! V/ I0 x* O9 l
  14. document.write(vm.$data === data) // true" q1 E( m- {  Q7 h
  15. document.write("<br>") // true. x( j) T7 K& P; [
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    & ~: ^( ~2 [# E1 i! l& J/ B$ c, W
  17. </script>
复制代码
! e4 Q# @9 M4 Y7 _! L/ N7 F0 E" ~

; X8 i7 r5 H/ `9 U+ s




欢迎光临 cncml手绘网 (http://www.cncml.com/) Powered by Discuz! X3.2