vue

什么是vue.js

  • Vue.js 是目前最火的一个前端框架,React是最流行的一个前端框架(React除了开发网站,还可以开发手机App, Vue语法也是可以用于进行手机App开发的,需要借助于Weex)

  • Vue.js 是前端的主流框架之一,和Angular.js、React.js 一起,并成为前端三大主流框架!

  • Vue.js 是一套构建用户界面的框架,只关注视图层,它不仅易于上手,还便于与第三方库或既有项目整合。(Vue有配套的第三方类库,可以整合起来做大型项目的开发)

基本指令

vue.min.js 官网下载




    
    Document
    


    
{{msg}}

v-cloak 指令

当引用的vue.js库没有完成加载时,html中的{{msg}}表达式就会展示成原始代码
可以在标签中加上 v-cloak,在style中设置display:none即可


{{msg}}

插值表达式

  • {{msg}}
会出现上述表达式展示源码问题,但是该方式不会影响标签中除表达式外的其他内容
例:这是{{msg}}的内容  
  • v-text="msg"
不会出现上述表达式展示源码问题,但是该方式会覆盖标签中的内容
例:vue text  
若msg是abc 则vue text将被替换成abc
  • v-html="msg"
如果需要向页面中写入HTML标签时,则需要使用 v-html
    

v-bind 用于绑定属性的指令

var  vm = new Vue({
    el:'#app',
    data:{  
          value1:'按钮'
    }
})

效果如下:


image.png

效果如下:


image.png

v-bind 简写方式, 效果一样


v-on:click 标签绑定单击事件


删除列表中的元素

{{item.id}} {{item.name}} // prevent 阻止默认事件 删除 删除1
var mv = new Vue({
        el:"#app",
        data:{
            list:[
                {id:'1' ,name :'zsa1'},
                {id:'2' ,name :'zsa2'},
                {id:'3' ,name :'zsa3'}
            ]
        },
        methods:{
            del(id){
                
                for(let i=0;i

跟进内容查询过滤集合数据

{{item.name}}


如果 in 后面是一个数字 ,count则从1 开始

{{count}}

分支结构

  • 只有表达式符合成立的标签才会展示
var  vm = new Vue({
    el:'#app',
    data:{
        score:'69'
    },
    methods:{//在这里定义当前vue实例用到的函数
    }
})
   

良好

优秀

及格

v-show 功能与v-if相同,区别在于v-show的条件表达式为false时,实际上标签已经存在网页中,只不过设置成display:none
而v-if 并不会将标签画出

var  vm = new Vue({
    el:'#app',
    data:{
        showFlag:false
    },
    methods:{//在这里定义当前vue实例用到的函数
    }
})
    
演示v-show
  • 查看网页源码


    image.png

v-for 与 v-if 集合使用

编号:{{user.id}},姓名:{{user.name}}

vue 的常用特性

  • 表单特性 :表单中的组件都是基于v-model进行数据绑定的
  1. 单选框,复选框,下拉选不需要配置相同的name组,只要绑定相同的v-model即可
var  vm = new Vue({
    el:'#app',
    data:{
        sex:'1'
    },
    methods:{//在这里定义当前vue实例用到的函数
    }
})
  • sex 初始值时1 ,页面则默认选择男
  • 注意: 下拉选的v-model 绑定在

    {{getInfo}}

发送post请求:

postInfo() {
            var url = 'http://www.liulongbin.top:3005/api/post';
            // post 方法接收三个参数:
            // 参数1: 要请求的URL地址
            // 参数2: 要发送的数据对象
            // 参数3: 指定post提交的编码类型为 application/x-www-form-urlencoded
            this.$http.post(url, { name: 'zs' }, { emulateJSON: true }).then(res => {
                console.log(res.body);
            });
            }

发送JSONP请求获取数据:

jsonpInfo() { // JSONP形式从服务器获取数据
var url = 'http://www.liulongbin.top:3005/api/jsonp';
this.$http.jsonp(url).then(res => {
 console.log(res.body);
});
}

通过接口获取产品信息集合


    

{{item.id}} -- {{item.name}} -- {{item.ctime}}

什么是组件

组件是可复用的 Vue 实例,说白了就是一组可以重复使用的模板,跟 JSTL 的自定义标签、Thymeleaf 的 th:fragment 等框架有着异曲同工之妙。

注意:在实际开发中,我们并不会用以下方式开发组件,而是采用 vue-cli 创建 .vue 模板文件的方式开发,以下方法只是为了让大家理解什么是组件。

  

Vue.component():注册组件
beixi:自定义组件的名字
template:组件的模板

使用 props 属性动态传递参数

v-for=“item in items”:遍历 Vue 实例中定义的名为 items 的数组,并创建同等数量的组件
v-bind:value=“item”:将遍历的 item 项绑定到组件中 props 定义的名为 value属性上;= 号左边的 value 为 props 定义的属性名,右边的为 item in items 中遍历的 item 项的值


    

什么是Axios

Axios 是一个开源的可以用在浏览器端和 NodeJS 的异步通信框架,她的主要作用就是实现 AJAX 异步通信

为什么要使用 Axios

由于 Vue.js 是一个 视图层框架 并且作者(尤雨溪)严格准守 SoC (关注度分离原则),所以 Vue.js 并不包含 AJAX 的通信功能,为了解决通信问题,作者单独开发了一个名为 vue-resource 的插件,不过在进入 2.0 版本以后停止了对该插件的维护并推荐了 Axios 框架。少用jQuery,因为它操作Dom太频繁!

在线引入axios。在项目开发中会安装axios组件(npm install axios)

    axios.get("http://localhost:9001/vue/get").then(function (response) {
        console.log(response.data);
    });

    axios.post("http://localhost:9001/vue/post",{
        name:"jack",
        age:"23"
    }).then(function (response) {
        //console.log(response);
    });

@RestController
@RequestMapping("vue")
public class VueTestController {

    @RequestMapping("/get")
    public User gerUser(){
        User user = new User();
        user.setName("jack");
        user.setAge(12);
        return user;
    }

    @PostMapping("/post")
    public void setUser(@RequestBody User paramUser){
        System.out.println(paramUser.getName());
        System.out.println(paramUser.getAge());
    }
}

并发请求

将多个请求同时发送,由服务端统计处理。

   function getVue() {
        axios.get("http://localhost:9001/vue/get").then(function (response) {
            console.log(response.data);
        });
    }

    function postVue() {
        axios.post("http://localhost:9001/vue/post",{
            name:"jack",
            age:"23"
        }).then(function (response) {
            //console.log(response);
        });
    }
     //返回结果处理
     axios.all([getVue(),postVue()]).then(axios.spread(function (res1,res2) {
        console.log(res1.data);
        console.log(res2.data);
    }));

什么是计算属性

当一些数据需要根据其它数据变化时,需要进行处理才能去展示,虽然vue提供了绑定数据表达式绑定的方式,但是设计它的初衷只是用于简单运算的。在模板中放入太多的逻辑会让模板过重且难以维护,对于一些比较复杂和特殊的计算有可能就捉襟见肘了,而且计算的属性写在模板里也不利于项目维护

computed主要的作用:

分离逻辑(模板和数据分离)
  缓存值
  双向绑定(getter,setter)


    

求和结果{{result}}

npm安装vue ,vue-cli

安装node.js

https://nodejs.org/en/

从node.js官网下载并安装node,安装过程很简单,一直点下一步就ok了

image.png

-- 镜像加速
npm config set registry=http://registry.npm.taobao.org

image.png

安装vue

image.png

安装vue-cli

image.png

初始化vue项目目录

image.png

启动vue

image.png

安装webpack


image.png

你可能感兴趣的:(vue)