vue入门

4 篇文章 0 订阅

1.前端发展史

(1) html --超文本标记语言 (静态网页) --就是一些标签
css+javascript
(2) 动态网页 比较典型的 jsp / php /asp
(3) ajax阶段 – 局部刷新技术
(4) html5 – 网页
(5) nodejs(服务器)–>前端的后代的写法 /java(tomcat)
​ npm(maven)
(6) vue (elementui) react…

2.mvvm结构

  • M:即Model,模型,包括数据和一些基本操作
  • V:即View,视图,页面渲染结果
  • VM:即View-Model,模型与视图间的双向操作(无需开发人员干涉)

在MVVM之前,开发人员从后端获取需要的数据模型,然后要通过DOM操作Model渲染到View中。而后当用户操作视图,我们还需要通过DOM获取View中的数据,然后同步到Model中。而MVVM中的VM要做的事情就是把DOM操作完全封装起来,开发人员不用再关心Model和View之间是如何互相影响的:

  • 只要我们Model发生了改变,View上自然就会表现出来。
  • 当用户修改了View,Model中的数据也会跟着改变。
    把开发人员从繁琐的DOM操作中解放出来,把关注点放在如何操作Model上.

3.Vue

3.1vue介绍

Vue (读音 /vjuː/,类似于 view) 是一套用于构建用户界面的渐进式框架。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,不仅易于上手,还便于与第三方库或既有项目整合。另一方面,当与现代化的工具链以及各种支持类库结合使用时,Vue 也完全能够为复杂的单页应用提供驱动。
Vue渐进式的理解:http://www.bslxx.com/a/vue/2017/1205/1490.html
Vue只关注视图层。
Vue通过新的属性(自定义)和{{表达式}}扩展了 HTML。
Vue的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件。
Vue学习起来非常简单。
官网:https://cn.vuejs.org/

3.2vue特性

轻量
Vue.js库的体积非常小的,并且不依赖其他基础库。
数据绑定
对于一些富交互、状态机类似的前端UI界面,数据绑定非常简单、方便。
指令
内置指令统一为(v—*),也可以自定义指令,通过对应表达值的变化就可以修改对应的DOM。
插件化
Vue.js核心不包含Router、AJAX、表单验证等功能,但是可以非常方便地根据需要加载对应插件。
组件化
组件可以扩展 HTML 元素,封装可重用的代码。允许我们使用小型、自包含和通常可复用的组件构建大型应用

3.3vue安装

(1) 安装的一个环境 nodejs
(2) idea安装nodejs插件
(3)idea 创建一个static web项目
(4)idea下方,打开terminal,输入cmd命令 npm init -y 初始化一个项目
(5) 安装vue
​npm install -g vue 全局安装(会安装到c盘,不推荐)
npm install vue 局部安装(安装到项目目录,推荐)
npm uninstall vue
​npm update vue

3.4使用前

使用vue之前,要先了解es6语法,比如:
(1)let 块级 var 全局 (掌握)
​ 只作用域当前的代码块里面
(2)const 常量 (掌握)
​ 一旦有值,不能修改
(3)解构表达式 (掌握)
​ 数组解构
​ var arr=[1,2,3];
var [a1,a2,a3] = arr;
​ 对象解构
​ var obj = {name:‘xxx’,age:19};
​ var {name,age}=obj
(4)箭头表达式 (掌握)3种声明函数方式

 var obj = {
            name:'张三',
            age:18,
            say:function(){
                console.log(11111)
            },
            say1:()=>{
                console.log(22222)
            },
            say2(){
                console.log(3333333)
            }
        }

(5)promise异步编程 --了解

3.5第一个vue程序

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

var app = new Vue({
  el: '#app',
  data: {
    message: 'Hello Vue!'
  }
})

3.6vue生命周期

在这里插入图片描述

3.7 vue命令

v-text – 类似于innerText
v-html–类似innerHTML

 <div id="app">
        <span v-text = "message"></span>
        <span v-html = "user.str"></span>
    </div>
    <script>
        var app = new Vue({
            el:"#app",
            data: {
                message:"11111111111",
                user: {
                    name: "aaa",
                    age: 23,
                    str:'<span style="color:red">aaa</span>'
                }
            }
        })
    </script>

v-for --循环

<div id="app">
        <ul>
            <li v-for = "h in hobbys">
                {{h}}
            </li>
        </ul>
        <hr>
        <ul>
            <li v-for = "h in user">
                {{h}}
            </li>
        </ul>
        <hr>
        <ul>
            <li v-for = "(h,index) in hobbys">
                {{index}}------------{{h}}
            </li>
        </ul>
        <hr>
        <ul>
            <li v-for = "(value,key,index) in user">
                {{index}}------{{key}}------{{value}}
            </li>
        </ul>
        <hr>
        <ul>
            <li v-for = "stu in students">
                {{stu.name}}
            </li>
        </ul>
        <hr>
    </div>
    <script>
        var app = new Vue({
            el:"#app",
            data: {
                message:'xx和bb是好朋友',
                user:{
                    username:'东东',
                    age:18,
                    sex:'man'
                },
                hobbys:['洗脚','按摩','大保健','改bug'],
                students:[
                    {id:1,name: "刘备", age: 29, sex: "男"},
                    {id:2,name: "貂蝉", age: 30, sex: "女"},
                    {id:3,name: "吕布", age: 31, sex: "男"}
                ]
            }
        })
    </script>

v-bind – 绑定标签里面属性 比如 v-bind:src=""

 <div id="app">
        <img v-bind:src="img" v-bind:title = "title">
        <input v-bind = "aaa">
    </div>
    <script>
        var app = new Vue({
            el:"#app",
            data: {
                img:"img/img.jpg",
                title:"风景图片",
                aaa:{
                    type:"text",
                    value:"1111"
                }
            }
        })
    </script>

v-model --绑定标签里面value值, 双向绑定效果

 <input type="text" v-model = "message">
        {{message}}
         <script>
        var app = new Vue({
            el:"#app",
            data: {
                message:'啊啊啊啊啊啊啊'
            }
        })
    </script>

v-show --控制display属性

<div id="app">
        <div v-show = "show">显示</div>
        <div v-show = "hidden">隐藏</div>
        <div v-show = "score>50">{{score}}</div>
    </div>
    <script>
        var app = new Vue({
            el:"#app",
            data: {
                "show":true,
                "hidden":false,
                "score":60,
            }
        })
    </script>

v-if – v-else 判断 ,如果成立 ,显示 不成立,去掉标签

<div id="app">
       <div v-if="age<18"> {{age}}岁是未成年</div>
       <div v-else-if="age > 18 && age <40"> {{age}}岁是中年</div>
       <div v-else> {{age}}岁老了</div>
    </div>
    <script>
        var app = new Vue({
            el:"#app",
            data: {
                age:44
            }
        })
    </script>
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值