您尚未登录,请登录后浏览更多内容! 登录 | 立即注册

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 11959|回复: 0
打印 上一主题 下一主题

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({, i8 I9 G$ ^- d
  2.   // 选项" m1 [3 w& i  g1 {# @3 Q
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    * S7 v; I  F$ v
  2.     <h1>site : {{site}}</h1>! Q& m. @' D& C5 K. |/ A( ~% Y
  3.     <h1>url : {{url}}</h1>
    5 E/ U7 B1 t, h4 p9 l$ b: ^' A/ [
  4.     <h1>{{details()}}</h1>
    7 D; q: @5 O6 [9 ]3 L" _
  5. </div>/ T6 {) U, ^) t9 l5 ]" P4 C4 A0 }# @
  6. <script type="text/javascript">+ L6 N* U* Y8 }# }4 P5 x
  7.     var vm = new Vue({! k5 R- `/ `6 |' u' w% H
  8.         el: '#vue_det',
    & a  X9 `1 c) q, o, F. X5 X) S
  9.         data: {
    ! V% C5 E) S! ^) I; C0 G* u2 a: }
  10.             site: "菜鸟教程",
    ! K$ N4 q' [) r) V+ ~' n6 e9 k
  11.             url: "www.runoob.com",3 r# b7 t( ]( h& c
  12.             alexa: "10000"
    ( s/ I1 h3 e7 Q/ u# r% E
  13.         },! i$ y+ D$ m; J# q! V+ d) d4 o4 U5 x
  14.         methods: {8 B1 K5 B7 s" i# l6 t: P
  15.             details: function() {4 B( M( [9 o! y( c+ M* Q# Q
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";! O8 ^, r/ o( Z* D7 @3 R2 Y. I5 V
  17.             }
    + `0 ^( `! B% b6 c$ O3 t" l0 C& K
  18.         }/ ~* m' R9 K$ p9 M4 \
  19.     })) N8 c+ D0 Q6 s$ q' D; q& k4 x3 B9 @
  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">3 d5 u8 H5 `4 B6 J
  2.     <h1>site : {{site}}</h1>$ `3 v5 s# \6 ^* l5 i8 l. l8 X1 l
  3.     <h1>url : {{url}}</h1>$ N$ \5 E7 Q0 J0 I1 S# o$ i
  4.     <h1>{{details()}}</h1>) N; s* F6 y" {0 u
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">8 o/ j2 i) |" ~) e" f
  2.     <h1>site : {{site}}</h1>8 J, @" S6 k, Q# U: H1 ]8 o2 C) Z6 [/ N
  3.     <h1>url : {{url}}</h1>
    0 j2 l6 S/ p2 \/ B" E
  4.     <h1>Alexa : {{alexa}}</h1>
    + O; m! J3 a( I) Y9 t- B+ p, b9 o* S
  5. </div>& v9 V) n, ?1 [( U
  6. <script type="text/javascript">
    ) u& h% o  B( y6 Q- a. v
  7. // 我们的数据对象
    , T8 z; k7 J3 `
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    , W' u/ k/ A+ T$ ]' r6 F& P' F. E
  9. var vm = new Vue({
    % l& R* B8 o% q2 v. R
  10.     el: '#vue_det',
    $ I5 `9 C7 Y1 ^3 D
  11.     data: data: M; ]$ ?; ?% A% W% C+ j: Y2 |
  12. })
    7 j1 i+ p0 A! L# `" T! O: n
  13. // 它们引用相同的对象!
    & D9 ~/ ?, S# c( S$ G' x# p
  14. document.write(vm.a === data.a) // true
    * a5 h/ V: m/ i- l7 ]
  15. document.write("<br>")
    1 b4 L' r$ ]9 R$ U& U' y( e6 O. C
  16. // 设置属性也会影响到原始数据
    + p  D8 E+ c" m! o9 l6 C
  17. vm.site = "Runoob"* k, e0 o5 n% H6 q$ d6 b: q
  18. document.write(data.site + "<br>") // Runoob# i+ d& W$ ^# a% l- G

  19. " k) {+ l- I. C8 M
  20. // ……反之亦然
    % M4 K2 r; j6 E: u
  21. data.alexa = 1234
    ' G1 ~& I9 f( ^3 F
  22. document.write(vm.alexa) // 1234
    / X& N! e* R/ T% A7 D
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">/ T/ |) v8 t  Q( {: e, U3 X, o
  2.     <h1>site : {{site}}</h1>
    ; a/ d: h4 l7 w  M% C2 ]0 A2 A
  3.     <h1>url : {{url}}</h1>' R% ?6 L, a0 Q1 a2 M* J8 o
  4.     <h1>Alexa : {{alexa}}</h1>
    % s: P) f0 g# d( Q+ q  ?; M  a" l3 c6 `
  5. </div>
    9 k' S; `( p" Q) {. N* k9 \
  6. <script type="text/javascript">, e( H  y6 f0 p/ }' ]- l$ g" l
  7. // 我们的数据对象: d; L4 z5 K6 P. p
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    . z! G( k3 C) o1 j  G5 S
  9. var vm = new Vue({) W6 R2 ]$ \) K" B$ ~. s/ N1 V; e
  10.     el: '#vue_det',; q3 L& @) ^) ?+ G1 `: S
  11.     data: data
    , A" u" S  `" g( X0 k5 O) G
  12. })
    , {1 E( F$ w4 n( Z$ O

  13. 5 }4 \8 ^  }7 |1 y
  14. document.write(vm.$data === data) // true
    0 j; p4 F4 b! J4 i
  15. document.write("<br>") // true
    5 P/ ?# V2 `# Q7 I$ I( A  B
  16. document.write(vm.$el === document.getElementById('vue_det')) // true# E) d& A9 u# @3 Q
  17. </script>
复制代码

& A" r. r9 I8 X6 @- z. y2 M. Z1 M8 V
2 d" g9 L7 ]; `0 m
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 21:27 , Processed in 0.102769 second(s), 20 queries .

Copyright © 2001-2024 Powered by cncml! X3.2. Theme By cncml!