Vue.js基础

1.对Vue的初步认识

Vue是一种用于构建用户界面的渐进式JavaScript框架(其他框架还有ANGULAR、REACT等),它能够帮助开发者创建可维护性和可测试性更强的代码库。“渐进式”的意思是指,若你已有一个现成的服务端应用,那么你可将vue作为该应用的一部分嵌入其中,带来更加丰的交互体验;或者如果你希望将更多业务逻辑放到前端来实现,那么vue的核心库及其生态系统也可满足你的各式需求。和其他前端框架一样,vue允许你将一个网页分割成可服用的组件,每个组件都包含属于自己的html、css、JavaScript以用来渲染网页中相应的地方。

1.1 Vue的安装参见以下链接

https://blog.csdn.net/m0_37479246/article/details/78836686

2.HTML、CSS、JavaScript三者之间的关系

html是框架,相当于房子的顶梁柱;css是刷墙的颜料,负责美化html;JavaScript是让html更生动好看,如让网页中的图片滚动显示。另外,平时常说的Dreamwea是一种编辑网页的工具。div和frame是html众多元素中的两个,前者负责布局,后者负责整体框架。

3.每个vue应用都需通过实例化vue来实现。语法格式如下:

 var vm = new Vue({  
        //选项  
        })  

4.DOM

全称document object model,文档对象模型,是用于访问html元素的正式W3C标准。

5.vue对象包含的属性:

    new Vue({  
        //绑定元素  
        el:'#app',  
        //要绑定的数据  
        data:{},  
        //用来接受外部资料的属性  
        props:{},  
        // 用来定义在Vue内使用的方法  
        methods:{},  
        //用来观察Vue 数据的更新  
        watch:{},  
        //自动为内部数据计算的属性  
        computed:{},  
        // 提供Vue 实体编译后的样板  
        template:{},  
        //用来定义子元件  
        components:{}  
    });  

6.一个测试实例

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <!-- <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge"> -->
    <title>Document</title>
    <script src="../vue.js"></script> <!--注:vue.js须和本html文件在同一文件夹中才能用这种写法-->
</head>

<body>
    <div id="app"> 
        <p v-bind:title="title">
            {{msg}}
        </p>
    </div>

    <script>
        var app=new Vue({ //var app=可省略,但在浏览器开发者模式下,app.msg的值无法被修改
            el: '#app',
            data: {
                msg: "你好!",//页面显示“
                title:'页面加载于 '+new Date().toLocaleString()
            }
        })
    </script>
</body>

</html>
jsdfdfjasjf

该实例的运行结果是在浏览器页面显示“你好!”,并且当鼠标指针指向该文本时,显示页面加载时间。

7.Vue.js模板语法

Vue.js 使用了基于 HTML 的模版语法,允许开发者声明式地将 DOM 绑定至底层 Vue 实例的数据。
Vue.js 的核心是一个允许你采用简洁的模板语法来声明式的将数据渲染进 DOM 的系统。
结合响应系统,在应用状态改变时, Vue 能够智能地计算出重新渲染组件的最小代价并应用到 DOM 操作上。
(1)文本:使用{{...}}进行数据绑定,文本插值就属于这种形式

<div id="app">
  <p>{{ message }}</p>
</div>

(2)html:使用v-html指令输出html代码

<div id="app">
    <div v-html="message"></div>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    message: '<h1>菜鸟教程</h1>'
  }
})
</script>

html属性的值:使用v-bind指令绑定html属性中的值。下面的实例先判断class1的值,若为true则使用class1类的样式,否则不使用该类:

<div id="app">
  <label for="r1">修改颜色</label><input type="checkbox" v-model="use" id="r1">
  <br><br>
  <div v-bind:class="{'class1': use}">
    v-bind:class 指令
  </div>
</div>
    
<script>
new Vue({
    el: '#app',
  data:{
      use: false
  }
});
</script>

(3)Vue支持JS表达式

<div id="app">
    {{5+5}}<br>
    {{ ok ? 'YES' : 'NO' }}<br>
    {{ message.split('').reverse().join('') }}
    <div v-bind:id="'list-' + id">菜鸟教程</div>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    ok: true,
    message: 'RUNOOB',
    id : 1
  }
})
</script>

(4)指令:是带有v-前缀的特殊属性。用于在表达式的值改变时,将某些行为应用到DOM上。例:

<div id="app">
    <p v-if="seen">现在你看到我了</p>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    seen: true
  }
})
</script>

这里,v-if指令将根据表达式seen的值(true或false)来决定是否插入p元素。
(5)参数:在指令后以冒号指明。如下例中,v-bind指令被用来响应地更新HTML属性:

<div id="app">
    <pre><a v-bind:href="url">菜鸟教程</a></pre>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    url: 'http://www.runoob.com'
  }
})
</script>

这里,href是参数,告知v-bind指令将该元素的href属性与表达式url的值绑定。
下面这个例子中的v-on指令,用于监听DOM事件:

<a v-on:click="doSomething">

在这里,参数是监听的事件名。
(6)修饰符 :以英文句号.指明的特殊后缀,用于指出一个指令应该以特殊的方式绑定。如,.prevent修饰符告诉v-on指令对于触发的事件调用event.preventDefault();

<form v-on:submit.prevent="onSubmit"></form>

(7)用户输入:在input输入框中可使用v-model指令来实现双向数据绑定,如下例:

<div id="app">
    <p>{{ message }}</p>
    <input v-model="message">
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    message: 'Runoob!'
  }
})
</script>

v-model指令用来在input、select、textarea、checkbox、radio等表单控件元素上创建双向数据绑定,根据表单上的值,自动更新绑定元素的值。
按钮的事件我们可用v-on指令监听,并对用户的输入进行绑定。下面的实例在用户点击按钮后对字符串进行反转操作:

<div id="app">
    <p>{{ message }}</p>
    <button v-on:click="reverseMessage">反转字符串</button>
</div>
    
<script>
new Vue({
  el: '#app',
  data: {
    message: 'Runoob!'
  },
  methods: {
    reverseMessage: function () {
      this.message = this.message.split('').reverse().join('')
    }
  }
})
</script>

(8)常用缩写:Vue为两个最常用的指令v-bind、v-on提供了特别的缩写

<!-- 完整语法 -->
<a v-bind:href="url"></a>
<!-- 缩写 -->
<a :href="url"></a>

<!-- 完整语法 -->
<a v-on:click="doSomething"></a>
<!-- 缩写 -->
<a @click="doSomething"></a>
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 215,384评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,845评论 3 391
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 161,148评论 0 351
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,640评论 1 290
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,731评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,712评论 1 294
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,703评论 3 415
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,473评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,915评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,227评论 2 331
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,384评论 1 345
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,063评论 5 340
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,706评论 3 324
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,302评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,531评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,321评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,248评论 2 352

推荐阅读更多精彩内容

  • 1. Vue 实例 1.1 创建一个Vue实例 一个 Vue 应用由一个通过 new Vue 创建的根 Vue 实...
    王童孟阅读 1,019评论 0 2
  • Vue.js是什么 Vue.js(读音 /vjuː/, 类似于 view) 是一套构建用户界面的 渐进式框架。与其...
    鱼鱼吃猫猫阅读 3,254评论 1 12
  • 今天,给大家分享下Vue.js基础入门,我主要由了解Vue.js、开始起步、语法三个部分简单的写了基础入门知识,希...
    一文插画阅读 7,598评论 13 184
  • 1 vue.js研究 1.1 vue.js介绍 1、vue.js是什么?Vue (读音 /vjuː/,类似于 vi...
    striveSmile阅读 919评论 0 49
  • 喜欢一个人,并不是因为彼此有多么重要,而是喜欢当时在一起的感觉。所以说当有一天彼此突然不再联系了,不要伤心难过,纠...
    不甘_b251阅读 165评论 0 1