vue2.0学习记录

持续更新中

看了一段时间的视频,即便是大火的现在,讲vue的视频还是那么不尽如人意,还是按照文档学吧,顺序知乎和简书里都有的,我也就再贴一次vue学习顺序,暂时觉得还不错,一点一点跟着做吧。
那么正文来了,在跟着文档上敲各种小demo和自己YY出来的demo的时候会遇到什么呢?我把我遇到的问题和解决方法都罗列出来,记录这段路程。

一、跟随官网教程敲

  1. 条件渲染
    问题描述:在条件渲染中,写完这段代码运行后,怎么刷新都是YES和NO都存在着;
  <div v-if="Math.random() > 0.5">
        Yes
  </div>
  <div v-else>NO</div>

解决方案:创建个Vue实例,就可以了;

 <div id="app">
  <div v-if="Math.random() > 0.5">
        Yes
  </div>
  <div v-else>NO</div>
 </div>
<script >
  var vm = new Vue({
      el : "#app"
  })
</script>
  1. key值控制元素是否重用
    完整示例如下:
<div id="example">
    <template v-if="loginTyoe === 'userName'">
          <lable>username</lable>
          <input  type="text" placeholder="Enter your userName" key="userName"/>
    </template>
    <template v-else>
          <lable>email</lable>
          <input  type="text" placeholder="Enter your email" key="email"/>
    </template>
    <button @click="toggle()">toggle</button>
</div>
<script>
     var vm = new Vue({
        el : "#example",
        data : {
                loginType : "userName"
          },
        methods : {
                toggle : function(){
                      this.loginType = this.loginType === "userName" ? "email" : "userName";
                 }
        }
     })
</script>
  1. 方法事件处理器
    问题描述:在Vue中使用v-on质量添加点击事件的过程中,执行函数直接写函数名可以获取鼠标事件如@click="fn",而函数名加括号的形式,却获取不到鼠标事件如@click="fn()";
<div id="app">
    <button @click="even">点我弹东西</button>
</div>
<script src="lib/js/vue.min.js"></script>
<script src="lib/js/vue-resource.js"></script>
<script>
    var vm = new Vue({
        el: "#app",
        data: {
            message : "Vue.js"
        },
        methods : {
            even : function(e){
                alert("Hello" + this.message);
                if(e){
                    alert(e.target.tagName);
                }
            }
        }
    })

往下看就知道了,在Vue中,提供了一个$event的特殊变量在传递原生的事件对象;
如果对jq有了解的话,在$.ajax请求数据后,较多的需求是拼接DOM元素并插入到需求的DOA节点中,有的时候需要给其中的某些元素添加事件,有一种方式就是在拼接的时候把点击等需要执行的函数也拼接进去;如果同时需要得到被电击的元素的话可能就需要获取鼠标事件对象然后再去各种操作;

上面的一段文字可以总结成这样几行代码:
$("<li onclick="test(this)">data</li>").appendTo("body");
function test(){
  do someting......
}

那么总结一下,在通过v-on绑定事件的时候,是不能传递this的,以点击事件为例,如果需要获取这个被点击元素就需要通过获取鼠标事件来间接获取,这时我们可以这样写

<button @click="fn($event)">点击</button>
在Vue的实例中,fn这个函数内可以通过接受参数的方式获取到鼠标事件了
  1. 组件
    问题描述:这个问题特别的唬人,我想了好几分钟,后来才发现是被先入为主的概念限制的思维(说难听点就是自己太蠢了,哈哈)
<div id="app">
        <test1></test1>
        <test2></test2>
        <test3></test3>
</div>
<script>
      var info = { count : 0 };
      //注册全局组件,当然局部也行
      Vue.component("test1",{
          template : "<button @click='count += 1'>{{count}}</button>",
          data : function () {
                  return info;
          }
      });
      Vue.component("test2",{
          template : "<button @click='count += 1'>{{count}}</button>",
          data : function () {
                  return info;
          }
      });
      Vue.component("test3",{
          template : "<button @click='count += 1'>{{count}}</button>",
          data : function () {
                  return info;
          }
      });
      new Vue({
          el : "#app"
      })
</script>

上述代码的结果就是点击按钮加1,这个没问题,问题出在官网解释的这句话

由于三个组件实例共享的是同一个对象,因此增加一个计数器,就会增加全部!嗯。让我们通过改为返回一个全新的数据对象,来解决下这个问题:   
data: function () {
  return {
    count: 0
  }
}

我只能说,这个‘嗯‘字很精髓,让我一时没有反应过来,导致想了半天原因是什么。。。
结果一句话就能说清楚——第二个组件里的count不再是info里的count了,我去了我是不是很蠢。。。
2017年8月27日

  1. 单个slot
    问题描述:官网代码补全
<div id="app">
    <h2>我是父组件的标题</h2>
    <my-component>
        <p>这是一些初始的内容</p>
        <p>这是一些更多初始的内容</p>
    </my-component>
</div>
<script src="lib/js/vue.min.js"></script>
<script src="lib/js/vue-resource.js"></script>
<script>
    Vue.component("my-component",{
        template : '<div><h2>我是子组件的标题</h2>
                    <slot>只有在没有分发内容时才会显示</slot></div>'
    })
    var vm = new Vue({
        el: "#app",
    })
</script>

最初在 <slot> 标签中的任何内容,都被视为备用内容。备用内容在子组件作用域内编译,并且只有在宿主元素为空,且没有要插入的内容时才显示备用内容。
上述的这段话是官网的原文,按照我个人的理解,意思是指当my-component这个自定义标签内没有内容的时候,slot中的内容才会显示,如果有,则不会显示。
2017年8月27日22:37:09

  1. 异步组件
    问题描述:看官网的示例直接懵逼;
    解决办法:Vue的异步组件;我就是按照这个上面说的理解的,当然了,里面涉及到了一些webpack的知识,如果不会也要好好看看,但还是得说写的很不错,值得借鉴(觉得这篇博客写的不错的就顶一下吧)。

二、学习Vue-Router

2017年8月29日00:01:07
懵逼中,我想静静
2017年8月29日23:47:00
找到了一个非常不错的博客,有文章有视频,跟着学Vue感觉很棒,是一个很适合新手Vue学习的平台,又从Vue cli新看了一次,受益匪浅,会继续跟下去;
不过从昨天开始换编辑器,一直被新编辑器支持Vue语法和高亮的配置搞的头大,后来不得不换回熟悉的webstorm,不然太耽误时间了;
坚持是件很难的事情,但坚持下来了再回头看看,也就那么回事,加油吧!
2017年8月30日23:37:17

三、Vue-Router总结

今天终于把路由这部分搞完了,感觉还可以,就是最近绷得太紧了,有点累,明天一早总结下。
2017年9月6日22:21:07
转眼就快一个礼拜过去了,算是为了未来两年做了些可能的铺垫吧。同时也把jspang的vue视频都学完了。

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

推荐阅读更多精彩内容