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

QQ登录

只需一步,快速开始

 找回密码
 立即注册

QQ登录

只需一步,快速开始

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

[Vue.js] Vue.js 起步

[复制链接]
跳转到指定楼层
楼主
发表于 2018-7-1 23:08:58 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Vue.js 起步
每个 Vue 应用都需要通过实例化 Vue 来实现。
语法格式如下:
  1. var vm = new Vue({4 X4 ^# P% s  m; v0 J# h
  2.   // 选项
    # r6 t! `4 z4 J6 u- a( n% p! F7 `3 L
  3. })
复制代码
接下来让我们通过实例来看下 Vue 构造器中需要哪些内容:
  1. <div id="vue_det">5 l. H' S2 |( I& _) _0 b+ P% \
  2.     <h1>site : {{site}}</h1>. R& n3 H( w. H" Y
  3.     <h1>url : {{url}}</h1>8 F$ q/ H5 y' P, {# |1 q+ U
  4.     <h1>{{details()}}</h1>
    ' B2 K* D2 Y5 h7 x
  5. </div>
    % [: O4 P6 A# U+ c
  6. <script type="text/javascript">
    $ k- {  H0 D  q
  7.     var vm = new Vue({
    3 A0 H0 V  I! t; P& x9 I
  8.         el: '#vue_det',8 K1 W/ Y6 E3 p
  9.         data: {
      ]0 Y% T  D$ h: w) d
  10.             site: "菜鸟教程",  j" S& @$ p$ _& n; E
  11.             url: "www.runoob.com",
    6 s( \( T& }6 k7 [" G- k
  12.             alexa: "10000"
    % m$ R9 F6 _& E" {' o
  13.         },
    & U' I7 F6 [6 k4 j8 Q
  14.         methods: {
    ; u/ I1 y* U0 G& t( k$ W3 c5 ~
  15.             details: function() {
    0 ?, w& z0 f! I
  16.                 return  this.site + " - 学的不仅是技术,更是梦想!";
    1 {" m# F# W  b& R) h7 m0 Y0 ?
  17.             }0 ~7 k) K. a4 z: M
  18.         }6 d1 I! D  s: e8 c( _
  19.     })2 a5 c6 o8 x( q* a
  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">
      E2 B: i# M- p/ l+ T: b
  2.     <h1>site : {{site}}</h1>' I! W3 N9 o1 a
  3.     <h1>url : {{url}}</h1>
    4 b; @0 T4 }4 w  c; Q
  4.     <h1>{{details()}}</h1>
    % ]8 ^: ^! i1 u/ |8 ]2 W% {" z  d, W, s
  5. </div>
复制代码
当一个 Vue 实例被创建时,它向 Vue 的响应式系统中加入了其 data 对象中能找到的所有的属性。当这些属性的值发生改变时,html 视图将也会产生相应的变化。
  1. <div id="vue_det">
      w7 ~: y6 f3 T: ^* L
  2.     <h1>site : {{site}}</h1>. h0 j4 L. g! ]3 Q
  3.     <h1>url : {{url}}</h1>/ o3 I% ]" o! }+ F" |7 h0 A: o
  4.     <h1>Alexa : {{alexa}}</h1>
    # K) @" R3 [2 Z5 E
  5. </div>
    5 m3 X) K8 i8 R5 _
  6. <script type="text/javascript">
    ! p  Z  \, P0 ~9 w. B
  7. // 我们的数据对象" J, L7 D( y" V: t9 x
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}' n' e' \( y! y# u& F3 X$ t0 Z
  9. var vm = new Vue({
    7 c/ Z. F) P* ], R  B  E( D+ z% J. l
  10.     el: '#vue_det',
    & [0 K; t$ A/ s* P4 n" r
  11.     data: data
    . g5 S* l* l; \* q6 V/ u  ]
  12. })
    0 G6 K& W; b. i. X( _
  13. // 它们引用相同的对象!- g% i4 K3 K# c3 P0 g
  14. document.write(vm.a === data.a) // true
    5 e% b, h1 H& o# f3 N$ y* J& W
  15. document.write("<br>")  f, T! T2 Z" l* u$ K
  16. // 设置属性也会影响到原始数据
    ( s, ~9 j5 W: q
  17. vm.site = "Runoob"
    8 N! J0 a  T! S2 q  b: c
  18. document.write(data.site + "<br>") // Runoob
    . t; K" _& }* I! |8 |- N4 V
  19.   L; y( h% I# q- i1 `3 G; k
  20. // ……反之亦然
    6 G0 ]! `( X* T' _% N% {
  21. data.alexa = 1234
    ' {; D) D- w/ H/ N3 P& p
  22. document.write(vm.alexa) // 1234
    * y2 T+ S* D7 [# L1 u0 L
  23. </script>
复制代码
除了数据属性,Vue 实例还提供了一些有用的实例属性与方法。它们都有前缀 $,以便与用户定义的属性区分开来。例如:
  1. <div id="vue_det">
    % R0 s) B6 k' C% y3 M
  2.     <h1>site : {{site}}</h1>. i" T: F2 A3 q3 {( ?  o
  3.     <h1>url : {{url}}</h1>  Y8 K4 S. y, v- h# h8 T
  4.     <h1>Alexa : {{alexa}}</h1>" o/ i. C! i  v8 l# f
  5. </div>  P- o7 y7 @  H8 A0 v' {  C
  6. <script type="text/javascript">
    6 w" t* P0 j2 y# W- v1 a8 O+ n
  7. // 我们的数据对象
    3 d6 d1 T0 ]5 x# m2 `$ R
  8. var data = { site: "菜鸟教程", url: "www.runoob.com", alexa: 10000}8 `2 [) D) q$ I; P! F1 F9 `1 f1 q: u
  9. var vm = new Vue({
    * Q, g% t+ n& o+ P2 |$ z  F! v$ j
  10.     el: '#vue_det',
    + K2 C; x- l7 a/ V% H% Y" _
  11.     data: data" n7 K# x3 _- R7 E. d2 _. e) N
  12. }): c+ Z" M( w: L4 w& l# [; s& l# I

  13. * X  ~5 ^7 J' v( v
  14. document.write(vm.$data === data) // true
    ) p( j* D" i7 C
  15. document.write("<br>") // true
    & w: Y6 c6 w# Y3 v' P7 O$ o: U( u2 p0 h
  16. document.write(vm.$el === document.getElementById('vue_det')) // true, n5 h* j3 I% n% M
  17. </script>
复制代码
5 z) |0 Q$ h4 t0 k0 s! m7 R
4 U6 O* p8 j8 s% X  l  ?
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享分享 支持支持 反对反对
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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