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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    - k% G8 F$ Y; e4 ^
  2.   // 选项
    2 \+ I3 N# @) v+ Y
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">- r! E' V: H8 b' G
  2.     <h1>site : {{site}}</h1>: j0 D8 \; l1 q" x! T& }+ L
  3.     <h1>url : {{url}}</h1>& I: i. r2 h5 \- m
  4.     <h1>{{details()}}</h1>9 b7 G; c  O. _# a* U4 ?( U4 k$ e
  5. </div>0 K, n( L9 J5 E; i9 H! Q- M/ m. j+ n
  6. <script type="text/javascript">
    ( @$ l( a3 \) n$ d+ |" m
  7.     var vm = new Vue({6 d( a+ R5 `# L2 _' F
  8.         el: '#vue_det',
    - r  [; l4 B2 L! B1 t
  9.         data: {3 w2 {% Y3 K4 C7 V+ N9 O  o
  10.             site: "菜鸟教程",
    / h( d% X5 @" w/ `7 n6 B9 N7 S
  11.             url: "www.runoob.com",9 M" H; l, h4 u
  12.             alexa: "10000"  Z* W# R- ~% A
  13.         },
    . t3 I# o6 _% \  r; f
  14.         methods: {
    9 q& K/ b0 ]0 A+ y3 A
  15.             details: function() {
    ) F4 t5 R2 g" u% g& J: W8 G; [
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";6 T# q5 R' Q5 }  l
  17.             }4 _6 L2 X1 E1 }/ P$ m
  18.         }* ?/ `1 L) j$ s  r9 Q
  19.     })4 w1 W1 x" u5 Q) U) [! ~+ d
  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">. b7 ]' @% w' C: F1 l1 A. [( s8 ?
  2.     <h1>site : {{site}}</h1>& T' y% e" M- s. \5 P! V
  3.     <h1>url : {{url}}</h1>  H/ D0 K* P# M
  4.     <h1>{{details()}}</h1>' N' T5 I( D& X) D3 j
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    ) g, ~* u3 y; x8 q
  2.     <h1>site : {{site}}</h1>" n5 A4 q- K. ~. y9 a
  3.     <h1>url : {{url}}</h1>
    ; j9 ^% m5 e( N: C  v( v+ d" r, G
  4.     <h1>Alexa : {{alexa}}</h1># O  m. }! f! p
  5. </div>- V2 p' W  R. O' \/ Q# k
  6. <script type="text/javascript">
    ' v" J, g3 A6 h. i$ i" U
  7. // 我们的数据对象$ ~" v5 p# w3 W) @( y8 O% b
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    9 b& ]. N, ?' U: h! e' |* a; I, A9 i
  9. var vm = new Vue({8 E- d2 @, O) R3 @
  10.     el: '#vue_det',' j3 h2 `$ u& t% @, J
  11.     data: data
    & }- M+ L& y  L9 E7 Q
  12. }); W0 E1 {0 P- z& i/ L2 s; C5 ~; b
  13. // 它们引用相同的对象!
    / p  t" x4 j7 Z$ ^3 x
  14. document.write(vm.a === data.a) // true
    . W0 L% V. N# M: g. y+ z" ^
  15. document.write("<br>")
    ) f) \, C, p9 {$ R# P' ?- w
  16. // 设置属性也会影响到原始数据
    - Z9 g; \7 L+ n4 ~
  17. vm.site = "Runoob"
    & G7 V% D2 X# _8 X# y" H8 p! E+ ^
  18. document.write(data.site + "<br>") // Runoob: z0 J3 R  c' ]' _0 y7 _3 |/ G6 [+ ?
  19. 6 L. [1 M& Q4 c' y) t
  20. // ……反之亦然
    3 _8 Y& ~4 a) b  `
  21. data.alexa = 1234: g8 J$ L* J9 ]% H& u, j. F
  22. document.write(vm.alexa) // 1234
    3 T) q- P) u! \% m
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">5 V3 X2 Y8 P' D7 g% ?6 N( y6 e
  2.     <h1>site : {{site}}</h1>
    - ]5 ~) L" e  [
  3.     <h1>url : {{url}}</h1># @+ @/ P2 a7 ^( H3 q
  4.     <h1>Alexa : {{alexa}}</h1>+ c+ ^- R  `# D  E. E9 j( O, q
  5. </div>4 t1 W3 ?8 s! _. _0 \' ~
  6. <script type="text/javascript"># u0 ]# ~) C7 S0 l3 E. c+ @- e' g
  7. // 我们的数据对象
    ) _- a+ h$ {+ M, r) y1 g1 H; j; {
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}6 _1 w* U2 q7 U5 K: T/ ?
  9. var vm = new Vue({
    & z0 a1 q, v; `
  10.     el: '#vue_det',) i! R3 Y- b3 q6 I( ^# C  r. R% q
  11.     data: data
    1 b1 e. m* |) ?# {3 a" _; B
  12. })6 O% m: w& h+ r" R2 J9 H

  13. 2 K9 ]* g: o" P8 [) m3 h; y
  14. document.write(vm.$data === data) // true$ u  p% {0 V5 _9 o
  15. document.write("<br>") // true/ u, X, x" l$ r7 c8 S6 Q$ ~
  16. document.write(vm.$el === document.getElementById('vue_det')) // true, ~( S; D0 W; r/ F9 h: P+ U! U
  17. </script>
复制代码
- S; y5 V; Y$ J/ j% ~. o

& O) d- s5 {  ]+ u7 i
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-3-16 18:43 , Processed in 0.059977 second(s), 20 queries .

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