cncml手绘网

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

作者: admin    时间: 2018-7-1 23:08
标题: Vue.js 起步
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    % \6 I5 I+ U6 q, @  Q5 m
  2.   // 选项
    3 J8 T" b, ~; |; S7 r
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    / x' v; x4 @9 T, R1 ?5 f# U
  2.     <h1>site : {{site}}</h1>' A" v9 `! V5 j& w; {7 e2 z
  3.     <h1>url : {{url}}</h1>
    . ]0 H( i' Y1 [0 p# _. T
  4.     <h1>{{details()}}</h1>' |( c9 G! w" a# W
  5. </div>
    # Z' V8 d# R8 X
  6. <script type="text/javascript">
    # m% M, v6 m  v$ p5 T# C! ?( S/ r
  7.     var vm = new Vue({
    . l/ W% b+ n  ?, A
  8.         el: '#vue_det',
    , p; c7 x0 D) z3 j$ H
  9.         data: {2 q! E; F7 x, Q8 D# v* Z
  10.             site: "菜鸟教程",# s5 N5 Z, }1 m; }+ c0 h2 @* k. ]
  11.             url: "www.runoob.com",
    & @. b! ?5 }% {! _. r
  12.             alexa: "10000"
    0 M+ E  P& q4 V! a9 j' a' K
  13.         },7 o" w7 r1 T  ^- t+ N5 N; M$ D
  14.         methods: {
    6 b, |8 d4 X% r1 E4 B# O  h
  15.             details: function() {
    " H( i: i5 S5 M" |% b0 E4 l
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";7 z7 ~8 p9 b  O% i
  17.             }
    # N5 L8 g$ l) T) n6 _
  18.         }' c  `+ s; o; f% w+ [
  19.     })
    8 @# y1 W3 X' @2 r( R! P3 _" [0 M
  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">
    9 h5 l2 x: c6 t3 z
  2.     <h1>site : {{site}}</h1>
    2 k( r: j8 b) M" G$ ]6 R: I# E
  3.     <h1>url : {{url}}</h1>
    4 ^3 u& s/ }" p, s& x% t
  4.     <h1>{{details()}}</h1>
    : o% l' ?) X; x4 H
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">" r3 b# D7 |# O; T& D4 Z
  2.     <h1>site : {{site}}</h1>
    1 G5 p+ w+ _; h' Z& @
  3.     <h1>url : {{url}}</h1>
    0 ]9 T/ J! ?& Z* F) Y
  4.     <h1>Alexa : {{alexa}}</h1>: l" `! t, ^- O! L
  5. </div>
    : Y5 c9 }7 F/ A
  6. <script type="text/javascript">& s: Q( m3 o. A8 a$ [! H5 J
  7. // 我们的数据对象
    ; K$ x+ B3 @; U; C5 F
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    2 v0 Y+ I7 A! L
  9. var vm = new Vue({* \: E6 u! m' `. z2 R3 C+ I
  10.     el: '#vue_det',5 j$ z6 O) o2 e$ c5 S
  11.     data: data+ F) c1 e5 H2 i" Q8 ^& Q$ G
  12. })8 M, ]- x! {9 s0 a
  13. // 它们引用相同的对象!
    * v5 Q6 r0 @3 K* G$ X6 v
  14. document.write(vm.a === data.a) // true% {# D( C" U/ C- R/ d
  15. document.write("<br>")) D; n" ]8 a; Q9 f+ l# [3 R) t' r
  16. // 设置属性也会影响到原始数据; K. ?" p5 ^6 c: `8 \: r, w2 `' ]. |; a
  17. vm.site = "Runoob"
    % U7 Y! x3 M3 y) Y0 t# v
  18. document.write(data.site + "<br>") // Runoob
    ' u2 |7 m) L( k- @
  19. $ j3 g( e$ Q/ M" |! ]
  20. // ……反之亦然
    ) q# m# I4 X. u( m, g# m! h& T
  21. data.alexa = 12347 |% z0 u1 ~; `
  22. document.write(vm.alexa) // 1234' U8 l* ]/ I, |% f& x, P+ E
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">1 _/ F% l  r7 I5 x3 S# {6 O: g5 G/ S
  2.     <h1>site : {{site}}</h1>
    2 S; p3 _& S: q9 @5 k: y
  3.     <h1>url : {{url}}</h1>
    8 d" o- C% S( J) J- o$ l' I
  4.     <h1>Alexa : {{alexa}}</h1>
    ) l; P9 |+ i4 k6 A  ^" l# V
  5. </div>
    3 o: {& C* z1 Q& p1 D' G
  6. <script type="text/javascript">) s3 V, k8 W6 |
  7. // 我们的数据对象
    " ?" Q) J; U, k& |  ?. [
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}3 Q* ]# a& l0 d& h
  9. var vm = new Vue({( @/ J5 d4 n: D3 {" l; y
  10.     el: '#vue_det',$ ~) T, c7 R6 P( |# ^2 U! r$ i( t
  11.     data: data
    0 u4 V$ h. J# A$ D& r
  12. })! O: n7 s- }# m- V7 D/ B

  13. $ t( p* |& g: y4 Y6 `( F" Z2 q. G, t
  14. document.write(vm.$data === data) // true" [5 g5 C4 y" e4 r! k
  15. document.write("<br>") // true, N( u$ e- t6 d- Z' v- }
  16. document.write(vm.$el === document.getElementById('vue_det')) // true' C6 O8 g) q; d4 G9 @! Y
  17. </script>
复制代码
5 y. V& f( p1 Z0 I8 q
" L, l, F* q$ k8 j: A





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