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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({: [; O& B) d4 \5 ~& F6 U
  2.   // 选项- Q; a5 s4 m# q
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">: ~$ ~6 A3 [$ m1 f& S" m% i
  2.     <h1>site : {{site}}</h1>
    6 k/ E) Z/ Z' d, b$ M. M
  3.     <h1>url : {{url}}</h1>! m9 U: p6 z/ c0 E; }5 B
  4.     <h1>{{details()}}</h1>: V6 U% n- ?  N" }- K, J
  5. </div>
    5 M1 g% R5 `7 K. B  u
  6. <script type="text/javascript">
    & L: D; l( {# Y6 l
  7.     var vm = new Vue({
    7 U) ~8 Z, M6 P1 D
  8.         el: '#vue_det',
    0 I" c( O/ a* n$ A% p
  9.         data: {
    ) M+ m4 H  f/ u" A1 ]3 `
  10.             site: "菜鸟教程",* j" m- b8 P4 Y. B, c" w; L4 a
  11.             url: "www.runoob.com",4 \+ @" @* i7 t9 {1 x7 P* f" Z: t
  12.             alexa: "10000"& D1 N9 F' V) E. ^- r5 s  a# z
  13.         },& _6 c) Y% Z6 G1 {  Z. {" W
  14.         methods: {
      [3 k+ k7 r) a, e2 r6 E4 p
  15.             details: function() {! m; a; s3 b& ]7 y
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
      s" Y1 I1 m3 b
  17.             }
    4 d# }& c2 ~: v' e. E! y
  18.         }
      A9 S6 u, O* A' r# t3 M6 U
  19.     })
    8 e" @5 I8 W0 K) f% K8 p! V
  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">, y9 l( W) a+ {8 J
  2.     <h1>site : {{site}}</h1>. m/ @7 w4 a$ s& _9 K: k
  3.     <h1>url : {{url}}</h1>
    . Y( M( b* A* E
  4.     <h1>{{details()}}</h1>
    ) J$ G7 [  x, z+ ^( R, Q5 f
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">3 A1 t8 C/ V& N0 u) p) Y
  2.     <h1>site : {{site}}</h1>  o# R5 c  a/ d8 ^) `+ P9 h
  3.     <h1>url : {{url}}</h1>
    2 `" U# O4 _; J) ]
  4.     <h1>Alexa : {{alexa}}</h1>
    : ~  P  S# w/ P
  5. </div>9 \: K7 G8 }: v4 r0 C! U
  6. <script type="text/javascript">1 u: U, n( d% |6 p# \9 [
  7. // 我们的数据对象$ e% F. L' S4 J4 ?) \9 H* B
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}; R% G- X: T4 z8 P
  9. var vm = new Vue({- ~+ a7 a' L6 g' F# j
  10.     el: '#vue_det',
    ' H$ m6 L1 \0 _) O. A. e) R
  11.     data: data1 ?- d, _: N! e3 Y" v0 t
  12. })
    + Q9 P; L  J8 V
  13. // 它们引用相同的对象!; I4 H! o7 T. j6 M" F
  14. document.write(vm.a === data.a) // true
    , `( ]7 m/ h$ d+ _% j& @# t* ^: K
  15. document.write("<br>")2 E0 `( C# U7 M, o
  16. // 设置属性也会影响到原始数据
    ; V7 y, @* \% n: ~% x) ]4 b
  17. vm.site = "Runoob"3 t" ?* Y7 V4 n, |& O
  18. document.write(data.site + "<br>") // Runoob/ C" [2 U/ G# p, Y; E$ @% p. |1 A  R

  19. ! R1 q+ J8 R5 J
  20. // ……反之亦然
    . ^$ x" ]4 K/ f
  21. data.alexa = 1234
    / I& y8 ^* k. I. _$ ^% N  Z
  22. document.write(vm.alexa) // 1234
    8 k* L$ Y% ?0 T6 e! q  }  v* Z3 D
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    2 _- j1 B# u, H& w! t$ O
  2.     <h1>site : {{site}}</h1>, b# J. b$ o$ @# a' H$ j4 Y) r5 n+ f
  3.     <h1>url : {{url}}</h1>
    : y8 A# ]' F' H' N$ u4 S/ U1 @
  4.     <h1>Alexa : {{alexa}}</h1>( S1 B8 a; w3 y0 l# ^2 N5 B! J
  5. </div>
    ! `2 V2 ]; Z& E- S6 g. d8 `
  6. <script type="text/javascript">: q0 o, J* ^6 J" C5 D1 j4 s
  7. // 我们的数据对象  _3 i3 m, ^; |5 N
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}7 d  @$ ^1 b" K1 g. Z
  9. var vm = new Vue({
    4 ?+ x2 q( H7 s* e  f3 z6 a
  10.     el: '#vue_det',
    2 g! W! l  m6 m) h
  11.     data: data
    & a! G# y7 @+ Y3 m7 }# `( \6 E0 K
  12. })
    1 o6 U6 e# p/ r: W
  13. , e0 T3 p- E/ v" D+ b
  14. document.write(vm.$data === data) // true+ }  P. E" c+ o; u6 ]5 H! _& O
  15. document.write("<br>") // true
    ) E2 l8 i6 b% s& R; E3 Y
  16. document.write(vm.$el === document.getElementById('vue_det')) // true$ V" q: `8 W! B: p
  17. </script>
复制代码
* V+ n& t3 J# f( r
* @. o5 ?& P9 d. [4 t1 U# k# r
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-8-4 10:06 , Processed in 0.065955 second(s), 19 queries .

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