cncml手绘网

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

作者: admin    时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({! H0 T1 C# P! G/ h/ ^4 c% l
  2.   // 选项* g7 c! m- ^1 h: K/ r9 v; P8 B; L
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">& ^5 A4 E1 T2 \
  2.     <h1>site : {{site}}</h1>
    : M# n  a/ Y, D
  3.     <h1>url : {{url}}</h1>- _: V- X  e" P
  4.     <h1>{{details()}}</h1>
    6 o* N/ f9 M+ P* d
  5. </div>
    - A) H3 }1 W: y/ w2 c
  6. <script type="text/javascript">
    , N2 I, H! ?: P( m0 |7 p
  7.     var vm = new Vue({" P7 O7 q- L  S& A( u, l
  8.         el: '#vue_det',  P+ u3 N- {+ h/ ]' l
  9.         data: {. V& T  {3 v! U/ b' {9 j" A6 [
  10.             site: "菜鸟教程",2 c4 d8 n$ X  Q- C  X- I8 X+ T1 _& A
  11.             url: "www.runoob.com",
    9 M; r+ c. C% i' l7 F
  12.             alexa: "10000"
    $ K# ~" @  Q! T2 N# H
  13.         },9 L& g2 W* w6 _% ~' u
  14.         methods: {
    " Z* L) a& e0 X
  15.             details: function() {. {. ~, M7 t; _
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    , C; {- M4 W7 `9 S- C& Z
  17.             }( d5 [2 b6 }) y. @$ ?
  18.         }: R0 |8 S6 }& h4 I7 d& t
  19.     })
    ; D  T- ]& y" Q: G9 W
  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">7 [# K8 r6 G* Z
  2.     <h1>site : {{site}}</h1>
    0 e+ ^7 b' m0 W/ n, K  @
  3.     <h1>url : {{url}}</h1>' t; I, U( C4 M
  4.     <h1>{{details()}}</h1>* ]8 k' w" p) x4 k
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    3 q* g. D4 e+ r/ \
  2.     <h1>site : {{site}}</h1>7 {7 M5 _& z$ h* z. C# f1 z; Q
  3.     <h1>url : {{url}}</h1># ?+ t" d$ ~! j
  4.     <h1>Alexa : {{alexa}}</h1>
    6 I  {& F8 G7 [# B1 O& `* u; J  s
  5. </div>, F8 J5 q0 M( V. y9 `1 H, T
  6. <script type="text/javascript">
    7 P2 S1 `) p9 d8 e9 L
  7. // 我们的数据对象
    4 f8 t1 R+ T! C6 T5 r, L# m9 Z) \
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    5 @6 |+ N0 a9 D+ \3 E
  9. var vm = new Vue({/ a! z' k5 X5 E# M+ v
  10.     el: '#vue_det',
    ! T) M' V# N; `1 d& `  y% |$ [
  11.     data: data" m1 w- y: o4 l
  12. })' g7 Y7 z. X/ a  \
  13. // 它们引用相同的对象!
    2 b+ y) ?$ p) x- _: h+ o+ q
  14. document.write(vm.a === data.a) // true1 m  ^: ?5 Q8 r# T7 ^
  15. document.write("<br>")
    " E6 U$ Y! `2 ^5 j" ~  P) `
  16. // 设置属性也会影响到原始数据( A3 t7 c! c$ @4 k
  17. vm.site = "Runoob"- P; {; s% M1 M, U& N/ C
  18. document.write(data.site + "<br>") // Runoob
    , i- r3 C: G* n; W/ @/ E7 }: N

  19. 4 Q7 m. X/ O' O. }1 @2 u1 f( t
  20. // ……反之亦然
    . |( f6 m8 b: l9 {% i, r6 f
  21. data.alexa = 1234
    % B# g9 U+ \! a0 b1 t+ r+ U
  22. document.write(vm.alexa) // 1234% t, h5 v/ K- W3 S1 }
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    5 h& l% g1 v6 R/ g. f
  2.     <h1>site : {{site}}</h1>
    : b% X, l2 W/ \8 L) [& ^
  3.     <h1>url : {{url}}</h1>- _3 c8 W& X% M/ E8 r( Y
  4.     <h1>Alexa : {{alexa}}</h1># [5 x- Z6 k! F$ F. W! ?  u
  5. </div>
    - I. c% K: v1 ]" P9 [
  6. <script type="text/javascript">
    2 b* C0 e+ E; f9 J2 ?8 P$ n
  7. // 我们的数据对象
    6 c% P; `% ]1 l0 x) k
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}1 m- I- U! i" u- E; i4 {( j: ~
  9. var vm = new Vue({
    - s; s$ a) {! K6 A* M# p
  10.     el: '#vue_det',
    6 r9 y$ h4 J0 Y! |+ }0 z
  11.     data: data
    ; c2 C3 Z- P  m# Y6 e
  12. })
    + }; e) p2 L6 k6 M  J

  13. ' s3 ^- G. h8 J( ~* F
  14. document.write(vm.$data === data) // true( @8 j- m) T) Y9 E' Z6 \) ]
  15. document.write("<br>") // true
    6 F' ]6 c- G; X) e
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ' Y9 h/ c, Q, N; B7 V4 M8 h
  17. </script>
复制代码
5 S, q! w8 B$ g% j2 s. ]3 i' R

; C; M& E. D" j# y5 z' ?- X




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