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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    " r% F. ~2 Y4 o- e
  2.   // 选项
    & @( u% c3 j8 a$ g  |4 j( b8 d
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">2 W  m; [  T3 m, ^) h! k; z& v9 l  [
  2.     <h1>site : {{site}}</h1>; y& W" L- u' @4 F# {; R
  3.     <h1>url : {{url}}</h1>, W2 r% H4 |0 j# \
  4.     <h1>{{details()}}</h1>$ S, E' o4 T- ]6 R
  5. </div>
    & J& K& \/ {1 d9 o& ^1 J
  6. <script type="text/javascript">
    ' A7 c1 `* T& C0 p
  7.     var vm = new Vue({
    # G3 u0 I( Y6 [! J1 I4 P
  8.         el: '#vue_det',
    ) ]2 P( C; O# s1 L0 @# n6 x$ l) Y
  9.         data: {6 T. a, T$ E) Y; I0 r
  10.             site: "菜鸟教程",
    & Z1 D; r& ^, L5 B- y
  11.             url: "www.runoob.com",% }" E- f, x: s
  12.             alexa: "10000"
    1 j- s3 O1 {% Q: o0 R
  13.         },% f7 N# Y" d0 R; M. S* p3 T
  14.         methods: {
    , n+ @7 s+ ?6 ~. b4 A) V
  15.             details: function() {# |, V5 ^2 i$ s6 N/ i
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";4 k; B( L: @! N: _4 u* P/ _$ d/ W
  17.             }2 V9 u/ V, P7 {0 Z# ^
  18.         }
    4 g% E6 R8 y1 Y+ c) c
  19.     })
    : b; h3 [: }! t) j5 y
  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">; M8 z& n% Q0 |. D# O( {* X' A
  2.     <h1>site : {{site}}</h1>8 w  u" C7 R( P" m, q, ^% N& Q3 R
  3.     <h1>url : {{url}}</h1>
      {2 l: N% {4 e8 ~! ^* q8 o
  4.     <h1>{{details()}}</h1>* ?" |3 b! l* d* o# V2 M
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">" @( h  @2 g$ b. d
  2.     <h1>site : {{site}}</h1># ~* O; g( r& ~
  3.     <h1>url : {{url}}</h1>
    6 X! y- |& r: y& h" a2 f
  4.     <h1>Alexa : {{alexa}}</h1>
    : y( `' n6 D1 h$ @; g
  5. </div>/ K5 C! i: x5 `1 m6 p$ \
  6. <script type="text/javascript">
    $ d( E" s; ~6 u! P& }. K" B) ?1 r+ @
  7. // 我们的数据对象
    ) J7 n; s( {0 @3 w9 J
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    4 W" e7 f: O% }0 h0 e& |
  9. var vm = new Vue({
    7 S# [3 P4 d5 m* P6 M6 ^0 r
  10.     el: '#vue_det',7 k7 w8 N6 o" T
  11.     data: data" K1 h: J  p7 g: m- T
  12. })% T9 |  w! l  I/ l# H
  13. // 它们引用相同的对象!
    ! o0 L' Z3 {+ C. I! ?
  14. document.write(vm.a === data.a) // true/ I, H. q7 R1 {" c# A* g$ \$ ]
  15. document.write("<br>")1 Q3 \, Y7 V+ k* f
  16. // 设置属性也会影响到原始数据
    + C" Y3 q& O% k
  17. vm.site = "Runoob"
    ( P6 m3 H% s6 Q' R$ A9 v
  18. document.write(data.site + "<br>") // Runoob8 }! Q5 ]0 M, n
  19.   ~' w" |& ~& i
  20. // ……反之亦然; Y: y  m( v& K5 I( N9 h
  21. data.alexa = 1234; T% P+ I) ?. v
  22. document.write(vm.alexa) // 1234/ E0 `8 h+ x/ D2 C5 H
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">- R6 {6 _6 U* B& S) Y, U& Q
  2.     <h1>site : {{site}}</h1>
    ; }: Q$ s9 |/ k$ T( V/ l
  3.     <h1>url : {{url}}</h1>
    * |5 T+ y4 T. j& x
  4.     <h1>Alexa : {{alexa}}</h1>8 I" h& {; R$ M/ a6 y$ x. k, F
  5. </div>% ^4 k; F. J) v# N( m
  6. <script type="text/javascript">
    7 ^+ C7 X( Q2 N6 N/ p6 H5 Y, V
  7. // 我们的数据对象8 L) z- Q6 |7 d5 z- T
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}, p  O' q1 V8 P5 R5 {6 _
  9. var vm = new Vue({: z, q8 ^! k/ q  k6 h# |9 O
  10.     el: '#vue_det',' P+ R3 h; @' I
  11.     data: data' r, b" l9 P) ^/ S
  12. })
    + k) J9 n6 s, a4 s* |4 D

  13. 4 J$ k. a* Y! l& A+ Q4 }, [5 o
  14. document.write(vm.$data === data) // true% l5 ?5 h: M% E
  15. document.write("<br>") // true) o) A& a9 j' q, ]6 Y
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    / S; |" J" e7 p0 R% j  X' R
  17. </script>
复制代码

5 k# O0 e  C1 i% m" Y6 o$ m; F/ [3 U8 l3 D5 c) p$ G! F1 ]
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-12-22 16:19 , Processed in 0.108924 second(s), 20 queries .

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