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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({
    # O6 b; ?3 e& ^# g0 }# p6 I
  2.   // 选项$ w5 T0 I4 H- [+ a
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det"># y. C4 L+ s8 e
  2.     <h1>site : {{site}}</h1>
    6 K/ b/ p8 R% O* D3 Y! P/ ]
  3.     <h1>url : {{url}}</h1>8 S5 q$ c" S, g- l  D: L# s
  4.     <h1>{{details()}}</h1>+ F5 m3 [# ?0 S. j9 s7 n( i' F, U
  5. </div>
    - g: s2 z1 j. W7 m4 T3 h+ L
  6. <script type="text/javascript">
    3 y1 l8 T; K1 ]8 N: h6 Y! k
  7.     var vm = new Vue({
    , W: P% Z% P- R2 y/ m5 C" B5 h
  8.         el: '#vue_det',$ y1 A% g' L) o% B7 E
  9.         data: {
    / U  H% C( m8 v. U1 f+ o. A+ `
  10.             site: "菜鸟教程",
    ! m& v9 n6 Y  l' i  u
  11.             url: "www.runoob.com",# N) L7 b8 M2 [! e: o. E
  12.             alexa: "10000"
    ; U0 `8 ^9 G% X
  13.         },
    , g6 x9 [6 l9 \( \9 A
  14.         methods: {3 }# K- Y5 x- A0 ?
  15.             details: function() {
    " }& X4 s1 a  A  b% G3 i8 Q
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    - l9 K  x( W, F3 t7 D
  17.             }7 o6 v4 N) f! v5 N) a1 z
  18.         }
    2 o3 x1 `& r& O! }
  19.     })* K5 Y3 i0 h+ [7 j' {. X
  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">
    4 q1 n/ ~+ l, e' `
  2.     <h1>site : {{site}}</h1>: X" N- q; h% `. c5 E; U8 e
  3.     <h1>url : {{url}}</h1>" [, H2 D: j) J3 Y* p$ X& i" ]
  4.     <h1>{{details()}}</h1>
    8 ~/ D5 V3 A$ H$ i8 D; L' u0 {
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">6 b: P! K8 C: e5 I% p! f
  2.     <h1>site : {{site}}</h1># F4 [8 b- R9 H  v/ w, N
  3.     <h1>url : {{url}}</h1>' U9 s0 c6 z6 _
  4.     <h1>Alexa : {{alexa}}</h1>
    & C- a4 g; `0 A' J! n
  5. </div>
    , H1 X; B* X* m7 B) z
  6. <script type="text/javascript">
    7 s5 f! J  Q1 |( {4 t
  7. // 我们的数据对象2 f4 m/ B% R5 A; |
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}
    : h: I. u. o% t. e9 T( j8 A! b
  9. var vm = new Vue({; Y3 h6 r  C3 ~8 V8 Z6 D
  10.     el: '#vue_det',
    ) p3 o3 C) y* {1 n* {! }7 a( t2 G
  11.     data: data
    1 g# @$ u9 z$ D' p  c, j
  12. })
    # @9 F9 n! U* _4 o0 v1 t9 `& R; O
  13. // 它们引用相同的对象!
    ( j3 {" X  P: O: V- d1 l
  14. document.write(vm.a === data.a) // true
    3 p) K* ^0 F+ H0 X( }2 X
  15. document.write("<br>")
    : D( e4 n' {+ S! ~. Z- B: B8 F
  16. // 设置属性也会影响到原始数据/ c1 p2 P, K; r3 E' {' f" }
  17. vm.site = "Runoob"8 h$ J+ m" P# x
  18. document.write(data.site + "<br>") // Runoob
    ' r2 M1 w( V6 g  K) s

  19. - \+ v; e1 W$ @% A& B! f
  20. // ……反之亦然
    1 G) i7 `' L, `2 c! A) t6 i+ G1 u
  21. data.alexa = 1234
    2 D; ]8 K( U- y# h$ c
  22. document.write(vm.alexa) // 1234
    ' C9 a4 v% N' F5 [3 |
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">* l. P) g- l- H; f3 m4 r
  2.     <h1>site : {{site}}</h1>
    ( x3 Q* u' [2 B
  3.     <h1>url : {{url}}</h1>& C; n0 s8 c3 n& M
  4.     <h1>Alexa : {{alexa}}</h1>; f7 X( }* c- L; y* |
  5. </div>
    * H7 n0 p3 U; Y+ u. v
  6. <script type="text/javascript">, O" i- ~% ^9 r) L: S
  7. // 我们的数据对象, N% r& L4 U1 G& ]# E& W# |5 _+ p
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}" C5 z) k: h8 ~) |
  9. var vm = new Vue({$ `1 q* X0 Z, w% d$ C( ~1 }
  10.     el: '#vue_det',' r/ J( Z: g9 k; n" w1 H3 g  p
  11.     data: data) l  A( @5 p0 I9 w( c/ ?. M
  12. })
    # O, N6 R' w# c4 a6 J

  13. 6 I% w% V# ~; `, S! D5 \
  14. document.write(vm.$data === data) // true
    6 T5 {' Y; f5 c' u
  15. document.write("<br>") // true
    1 X" b" v) g: W3 }. k
  16. document.write(vm.$el === document.getElementById('vue_det')) // true
    ) G5 }( z( k  L
  17. </script>
复制代码

) I# u0 F( m# Z5 P2 O1 A& {. Q* ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

GMT+8, 2024-5-19 15:00 , Processed in 0.109130 second(s), 19 queries .

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