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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    ) B1 n  g6 B7 G
  2.   // 选项6 i, S, l8 L, ^2 a' |  k
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">
    : R& K: E$ K* K
  2.     <h1>site : {{site}}</h1>- R( q3 @) I4 L- K; r; b( q/ I
  3.     <h1>url : {{url}}</h1>2 O7 r* ^; _3 }" i5 `$ o1 F
  4.     <h1>{{details()}}</h1>
    & n4 ~! N; k& i
  5. </div>
    ) N* L$ \& s" D7 A* R  ^6 o; p
  6. <script type="text/javascript">
    5 e& t6 I1 F% s, G/ b- [3 l
  7.     var vm = new Vue({, g; h8 O* I: r  G0 v) J9 s( d* k
  8.         el: '#vue_det',# W5 D) \8 ^3 D, {
  9.         data: {" I% p# g2 x% K% p7 u! {  C
  10.             site: "菜鸟教程",+ O: \* Q( T, U, P1 Y
  11.             url: "www.runoob.com",1 _- t: I' V4 C/ A. H3 \
  12.             alexa: "10000"' `  u- T# j: K, Z, _' B
  13.         },5 M6 j* a7 s$ k' k1 W/ h
  14.         methods: {
    + E+ e1 V+ O1 r& q/ a7 t
  15.             details: function() {$ \% R7 K. h7 c3 l! g* [1 E
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    2 L( K4 `: N, X  m$ o; N, S& D
  17.             }
    ) A% R( n- R7 \% J$ _
  18.         }
    2 g# ?; j4 D+ R  D
  19.     })
    % L9 n/ f; Q  I( N% 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">( m$ x( M' U2 R% A$ Z3 C* Y
  2.     <h1>site : {{site}}</h1>1 P# i+ [1 k2 y0 ?
  3.     <h1>url : {{url}}</h1>. u" A) Z, W, }7 _: O* G6 K
  4.     <h1>{{details()}}</h1>8 q- Z. l- h6 ~4 J% z$ h
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
    ) t7 H  t1 i- k
  2.     <h1>site : {{site}}</h1>
    * g+ V2 f% e5 n; E5 S" V
  3.     <h1>url : {{url}}</h1>
    ! n# h0 C& H1 x3 d+ E3 h0 W  ^
  4.     <h1>Alexa : {{alexa}}</h1>
    9 Z! z9 J- r& H7 M: w
  5. </div>
    ; `+ K6 ?3 P# S: z
  6. <script type="text/javascript">
    ) z% {+ a7 r4 A9 G: m9 H% \8 t+ A
  7. // 我们的数据对象4 D' J9 }. y2 [' y! A* r% c1 V# h
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    ) b$ I' c2 j( v
  9. var vm = new Vue({, \7 K# i7 A4 r$ q
  10.     el: '#vue_det',4 y" o4 z* S7 s
  11.     data: data
    - ?4 d, [# {/ P3 L+ k  _
  12. })( W2 X* Z1 ^1 h% d1 c( w$ _9 W
  13. // 它们引用相同的对象!, T# W6 e' g& U. Z
  14. document.write(vm.a === data.a) // true
    $ W' |* C8 O  Q; o
  15. document.write("<br>")
    1 G7 \7 p! s) U1 t9 a
  16. // 设置属性也会影响到原始数据
    + b( S4 d! X# \; b; q# Q
  17. vm.site = "Runoob"9 X' a) i, \+ p. w- U
  18. document.write(data.site + "<br>") // Runoob; F* E/ H/ \$ u( O. v+ u3 |

  19. ) Y) P! [7 O6 ~3 x4 R; V) \
  20. // ……反之亦然: k1 V0 w4 \" e% ^* Q
  21. data.alexa = 1234
    " L1 t9 g& ~; {9 F; d
  22. document.write(vm.alexa) // 1234+ h' F# \, B. b
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    , ]$ Q) M9 i+ {5 M4 }5 @
  2.     <h1>site : {{site}}</h1>% k0 W& C0 `2 q/ F& m1 r
  3.     <h1>url : {{url}}</h1>
    9 R1 w* ~% V' N  q
  4.     <h1>Alexa : {{alexa}}</h1>& H4 m% a- l: ?  z/ H
  5. </div>
    $ T5 H. i" I: Y) j* a# ^
  6. <script type="text/javascript">
    % A; f4 {) T. ^  g! \! `
  7. // 我们的数据对象
    & u3 d3 l3 u4 h+ m' {: I/ W$ D. @
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}8 P/ ?. Y- c5 H" o7 s
  9. var vm = new Vue({
    / @$ t, o7 E6 j8 O6 U
  10.     el: '#vue_det',! ?: C& V& B! R
  11.     data: data
    ) F6 Z5 a9 b8 @
  12. })" `/ j/ X& x+ e( j' k, d

  13. 4 C0 q! A: ~6 e$ g" u
  14. document.write(vm.$data === data) // true2 H. a( }% `" y
  15. document.write("<br>") // true! ?* H7 v8 O6 [/ a9 Y
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    2 Q( @$ Y; E: d+ Y+ N# k. X
  17. </script>
复制代码
' t7 e1 T( C9 B6 ]' \- _8 B8 D7 o

/ _7 |; o9 T; J' h  h8 L0 I; c; t9 f
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2026-6-20 00:00 , Processed in 0.057077 second(s), 20 queries .

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