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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    & A) R, B$ N9 k$ O( W/ M# z6 q+ O) m
  2.   // 选项- Z! F+ J4 Q" }
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    5 S9 w; u: Z7 n3 v9 X
  2.     <h1>site : {{site}}</h1>* U* H$ I7 s  R) s* y! R
  3.     <h1>url : {{url}}</h1>
    7 g8 b0 S3 S# E( G
  4.     <h1>{{details()}}</h1>, X% O  _. J. Y6 T) h
  5. </div>" J" }  b, O* b; O- B, \9 {
  6. <script type="text/javascript">7 _6 }$ h$ d! G" f* V: ^
  7.     var vm = new Vue({
    ' m# ]1 K. _5 u- S: S/ X
  8.         el: '#vue_det',% D% H0 E6 t% Q
  9.         data: {
    . I$ V# W$ C( A$ f# I$ v
  10.             site: "菜鸟教程",* n8 _# F; E8 q
  11.             url: "www.runoob.com",5 n& P1 j1 s! H  a; R% R+ N2 v
  12.             alexa: "10000"
    + }# i+ Z( L0 p- J. \
  13.         },% B. U1 L, H' \2 Z7 N7 C! G
  14.         methods: {! W# Q3 w2 P1 Z9 r) ~& w1 n4 A# ?
  15.             details: function() {: D# h7 L8 H5 [5 ~% q/ a
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";- ~- w+ `& r  B5 J# M; s
  17.             }+ `& Z! [" g' N8 a1 N/ r. T# k
  18.         }; P0 G4 ^* A! B: U; u
  19.     })
    7 Q7 r: b8 s& _9 u* ]
  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 U9 n( U; @% B" j
  2.     <h1>site : {{site}}</h1>
    / `: z: O* s! D' x: j! j) ~' c
  3.     <h1>url : {{url}}</h1>
    6 a1 \6 [( P* o9 c& l
  4.     <h1>{{details()}}</h1>
      Q/ c2 ~; l( h3 v# ^8 M
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">* w% t+ q+ Z4 W* f% |& A: R0 }. _
  2.     <h1>site : {{site}}</h1>
    5 x! B  S8 d" B. z9 C$ x6 i+ t: @
  3.     <h1>url : {{url}}</h1>1 M$ J' e4 H! ]% A. O) |
  4.     <h1>Alexa : {{alexa}}</h1>
    ( V3 Y6 E; v2 ?& z  g
  5. </div>' r: o( S4 o/ v
  6. <script type="text/javascript">
    7 @% V. b8 J! U5 w
  7. // 我们的数据对象
    6 d- i% k. I6 b0 B1 v
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}2 _0 L1 j: i7 X) Y. T8 A9 n) A
  9. var vm = new Vue({
    1 {" ]: t, ^5 T; K+ y# C
  10.     el: '#vue_det',: M& M, P. X0 H/ O+ v1 m
  11.     data: data0 \: a$ v5 p# R0 ~
  12. })- ~0 {4 {1 Z% Q$ a# I5 C
  13. // 它们引用相同的对象!2 e- H( ]6 h; g+ S. |1 B
  14. document.write(vm.a === data.a) // true
    6 p- \8 x: t5 ?9 W9 F
  15. document.write("<br>")
    $ f( E2 }# b4 k! x
  16. // 设置属性也会影响到原始数据9 J" Z5 {3 P4 n1 [! E) b: e
  17. vm.site = "Runoob"
    + t5 \7 d& }( C
  18. document.write(data.site + "<br>") // Runoob' `# u, p. E. j' y5 d5 C8 {; v

  19. / e' X! P& v5 Q( |6 C
  20. // ……反之亦然1 C( X6 n  X3 w, s; |& c. L
  21. data.alexa = 1234
    1 {" @5 o/ E& \4 Q; j4 W
  22. document.write(vm.alexa) // 1234
    & f9 n8 y' b; E; d* n$ Y; s2 c* Q- A. V
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det"># A5 l+ a- [3 L: w# V' ~/ @' B
  2.     <h1>site : {{site}}</h1>' P) z5 n6 N) }6 D5 k4 z
  3.     <h1>url : {{url}}</h1>
    5 L" h) F3 M8 n) a
  4.     <h1>Alexa : {{alexa}}</h1>
    7 h; R- @- V3 w- ~7 m9 p
  5. </div>" X* i5 y* S  \) e
  6. <script type="text/javascript">) Z: U: |5 o9 C( z9 k& m( N& m
  7. // 我们的数据对象+ P( N5 D- u/ @8 Y
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}" p/ O" Z3 B. _
  9. var vm = new Vue({% F8 j2 Y/ r" o8 B
  10.     el: '#vue_det',9 ?" H" c  y! z9 j" t* i
  11.     data: data+ W. g3 U2 m) {3 i/ F$ b
  12. })# |) B1 J: r  Z7 k
  13. 8 J. q+ n; E$ S( b' R+ }/ I
  14. document.write(vm.$data === data) // true
      q+ J3 O( h9 A) W! g
  15. document.write("<br>") // true
    " W# e5 ~( H0 Q
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    5 i$ j! A& p, z. g* K  T1 ?
  17. </script>
复制代码
5 d( i) K: v6 n/ M) o: I

. G0 F3 J6 H  s+ F* a( E
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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