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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({/ M: `- y* @) t
  2.   // 选项0 H1 Y' _% w! ^2 Y& p
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">. u) E( m' n# W2 V! m; A
  2.     <h1>site : {{site}}</h1>- q/ t$ {0 f( R4 ^' k) }2 @
  3.     <h1>url : {{url}}</h1>
    6 S  \8 E4 d  ], B' N$ k
  4.     <h1>{{details()}}</h1>
    8 M7 }9 i2 K3 k, X/ x
  5. </div>, s0 q8 y* \% K+ N1 o/ G1 e  T
  6. <script type="text/javascript">
    ) A( H& X, Q, G' e# M7 y$ M* D
  7.     var vm = new Vue({2 U% ^  e6 P5 }$ A' e8 F( L8 Z
  8.         el: '#vue_det',
    5 s, p1 l4 k; ?3 O' W6 E
  9.         data: {
    1 g0 E. z$ }) V5 y* g0 A+ y
  10.             site: "菜鸟教程",
    & b' v6 T2 i; I* h- ]
  11.             url: "www.runoob.com",: ~, D$ M* i7 K) G! T
  12.             alexa: "10000"
    6 }1 X9 ]3 L' N  `, X
  13.         },
    9 e  U2 z) o- a  \4 j+ }- w
  14.         methods: {
    + z" U1 v8 ]6 M% a. o
  15.             details: function() {8 H% Q' m3 ~& x. X! o4 D
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";" H+ ]. k( }$ d6 ]( Z) x5 {9 p- w8 z
  17.             }( C! @4 c. t$ J% f( [
  18.         }
    . v. H3 A+ v! s! i5 X
  19.     })( }: F" b# ~% ~  q
  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">) Z' l6 ~6 x0 f8 e7 K1 a
  2.     <h1>site : {{site}}</h1>) {- s2 N8 ]2 A. b+ S7 f
  3.     <h1>url : {{url}}</h1>% H5 V) g4 M. V5 @. W: k* o
  4.     <h1>{{details()}}</h1>$ T+ ]; F3 R0 \5 k. i! K
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    " d& K% j  s  L) Z5 K  D. b
  2.     <h1>site : {{site}}</h1>. Z9 r: W) f5 a5 M. t
  3.     <h1>url : {{url}}</h1>7 s& V6 P5 [5 ?* ^5 @! @. |5 e# A
  4.     <h1>Alexa : {{alexa}}</h1>
    & K$ m( P, W3 D; T) Q
  5. </div>/ I6 U$ r+ B4 `* Z* h" G  e
  6. <script type="text/javascript">0 r  ?3 w- v. D, B/ t5 P
  7. // 我们的数据对象& b, K( k" e' `4 Z6 C3 v
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}1 [9 a" p1 d7 t9 x7 |: j
  9. var vm = new Vue({
    3 L3 l) J4 z1 S. U) b+ r  n
  10.     el: '#vue_det',
    " X$ t, p6 r* W  L5 v+ W
  11.     data: data/ G: @& E. r8 B  y$ Z1 v: f
  12. })
    - m6 u" l- @( @* a, X
  13. // 它们引用相同的对象!
    / [+ N5 _* s9 ^( ]  V0 O
  14. document.write(vm.a === data.a) // true
    9 i) p5 e; S' D
  15. document.write("<br>")
      q* O, D% M, g. w* @  _
  16. // 设置属性也会影响到原始数据3 k( g7 x/ B2 O+ o* D6 @
  17. vm.site = "Runoob"6 c7 J' f; h! j5 b. b
  18. document.write(data.site + "<br>") // Runoob
    4 d; n: _8 d( h* _7 D9 c
  19. , T* p4 ]& ~: F1 Q  w% I
  20. // ……反之亦然
    $ z7 U4 S( l) z
  21. data.alexa = 1234
    ( N* y, V3 K* z) I$ O* L% k* x
  22. document.write(vm.alexa) // 1234; S" U7 Y  ]) y) D# m
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    5 F9 F4 t1 ]+ \
  2.     <h1>site : {{site}}</h1>% I: u6 Y! E/ T0 M8 I7 r* D2 p
  3.     <h1>url : {{url}}</h1>
      ~% a- x, G( w0 Y; S3 y5 ~
  4.     <h1>Alexa : {{alexa}}</h1>
    ! r2 N1 C) \, ?
  5. </div>
    ( j  R  U9 ~. F/ S/ W
  6. <script type="text/javascript">" }& B2 r. c. y
  7. // 我们的数据对象
    1 D$ d$ S5 e: q6 w! L
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}3 X+ J5 v5 z2 F" h
  9. var vm = new Vue({& r/ v# [6 }4 j3 x
  10.     el: '#vue_det',
    0 @; e' R+ m) `
  11.     data: data9 h" d% z+ t$ b9 ^
  12. })
    % \% u; |% s7 v& o7 T  r6 X
  13. - I* l/ z" O6 J5 G& e1 }
  14. document.write(vm.$data === data) // true$ q' m7 f- B6 {2 J. ]
  15. document.write("<br>") // true
    8 N+ T+ T2 ~  w& x( O
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    + U2 R, w% I, i- E, H& P3 N
  17. </script>
复制代码

9 Y- x5 V+ n9 Q: r% q1 a* M7 G# T6 `% @$ u" F. M! ^8 _0 P
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-1-30 16:32 , Processed in 0.048972 second(s), 20 queries .

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