Vue

JS基础

数组操作:
定义:items: []
添加元素: this.items.push("11")
获取元素: this.items[2]
删除元素: this.items.splice(2,1) //前索引后偏移

vue脚手架

1.安装node.js
2.安装Vue:

全局安装 vue-cli

$ cnpm install --global vue-cli
3.在Idea中创建Vue项目:
new Project或new Module,选中Static Web->Vue.js
一路next和no
生成配置文件后npm install,
4.运行项目:npm run dev

Vue基础

//基础指令
{{content}} -> v-text="content"
@click="handleClick" -> v-on:click="handleClick"
:value="item"  -> v-bind:value="item"
v-model="newItem"
v-if="true"  相当于Android的visible/gone
v-show="false" 相当于Android的visible/invisible
v-for="(item,index) of items"
v-html="<h1>ok</h1>"

this.$emit("自定义事件名称",自定义事件传递的值)

new Vue({
  el: "#root"
  data: {
    item: '',
    items: []
  },
  methods: {
    handleClick: function(){
    }
  },
  computed: {
    fullName: function(){
       return firstName+" "+lastName
    }
  },
  watch: {
    this.count++
  },
  mounted: function(){//生命周期
      this.$nextTick(function () {
        /////
      });
  },
  filters: {//过滤器定义
      formatMoney: function (value) {
        return "¥"+value
      }
  }
})
//全局过滤器
Vue.filter("money",function(){
});
//过滤器使用
<div>{{amount | formatMoney}}</div>

有el没template时以el自定的挂载点下内容作为template内容
有template没el时,是最直接的Vue实例的形式
既有el又有template时,即使用template代替el挂载点下的内容
定义组件:

//1.全局组件
Vue.component('todo-list',{
  template: '<li>item</li>'
})
<todo-list></todo-list>
//2.局部组件
var TodoItem = {
  template: '<li>item</li>'
}
new Vue({
  components: {
    'todo-item': TodoItem
  }
})
<todo-list></todo-list>
//3.父组件向子组件传参:通过定义属性的方式传递
Vue.component('todo-list',{
  props: ['content'],
  template: '<li>{{content}}</li>'
})
  //通过属性绑定的方式使用
<todo-list 
        v-for="(item,index) of items" 
        :key="index"
        :content="item">
//4.子组件与父组件主动通信:通过绑定自定义事件
    //子组件通过$emit()方法发送事件
      Vue.component('todo-list',{
        props: ['content','index'],
        template: '<li @click="handleClick" >{{content}}:{{index}}</li>',
        methods: {
          handleClick: function(){
            this.$emit('delete',this.index)
          }
        }
      })
    //外层在父组件调用的子组件中绑定发送的事件进行参数获取和处理
   <todo-list 
        v-for="(item,index) of items" 
        :key="index"
        :content="item"
        :index="index"
        @delete="handleDelete">
        </todo-list>
    handleDelete: function(index){
            // alert("删除:"+this.items[index])
            this.items.splice(index,1)
          }

vue网络请求

使用axios进行请求,使用qs进行json转换
服务端添加允许跨域请求配置
安装axios依赖:

npm install axios --save-dev
@Configuration
public class CorsConfig extends WebMvcConfigurerAdapter {
    @Override  
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")  
                .allowedOrigins("*")  
                .allowCredentials(true)  
                .allowedMethods("GET", "POST", "DELETE", "PUT")  
                .maxAge(3600);  
    }
}
    <script src="./vue.js"></script>
    <script src="./qs.js"></script>
    <script src="./axios.js"></script>

1.get请求

var mUrl = "http://169.254.213.219:8888/user/user/login?email=fangdean@yeah.net&password=123456";
axios.get(mUrl,{})
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

2.post请求

var mUrl = "http://169.254.213.219:8888/user/user/login";
var param = {
    email: 'fangdean@yeah.net',
    password: '123456'
};
axios.post(mUrl, Qs.stringify(param),{'content-type':'application/x-www-form-urlencoded'})
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });

在vue-cli中使用axios

//1.依赖
npm i axios -D
npm i qs -D
//2.main.js中
import axios from 'axios'
import Qs from 'qs'
Vue.prototype.axios = axios
Vue.prototype.Qs = Qs
//3.使用
        var mUrl = "http://169.254.14.185:8888/user/user/login";
        var param = {
          email: this.email,
          password: this.password
        };
        this.axios.post(mUrl, this.Qs.stringify(param), {'content-type': 'application/x-www-form-urlencoded'})
          .then(function (response) {
            if (response.data.code == 1) {
              console.log("登录成功");
            } else {
              console.log("登录失败");
            }
          })
          .catch(function (error) {
            console.log(error);
          });

路由

页面跳转

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

推荐阅读更多精彩内容

  • ## 框架和库的区别?> 框架(framework):一套完整的软件设计架构和**解决方案**。> > 库(lib...
    Rui_bdad阅读 2,855评论 1 4
  • vue-cli搭建项目 确保安装了node与npm 再目标文件夹下打开终端 执行cnpm i vue-cli -g...
    Akiko_秋子阅读 3,188评论 1 22
  • 这篇笔记主要包含 Vue 2 不同于 Vue 1 或者特有的内容,还有我对于 Vue 1.0 印象不深的内容。关于...
    云之外阅读 4,989评论 0 29
  • ## Vue进阶 ### 一、vue实例 #### 1.一个基本的vue的实例 ```html {{title}}...
    千锋陈老师阅读 681评论 0 1
  • 《一坤堂驱湿汤》秋天如何祛湿 1、避环境的湿 日常生活最好减少暴露在潮湿环境中。尤其对湿气敏感的人,更应留心下列事...
    一坤堂阅读 115评论 0 0