VueJs的知识点

半年前看了vueJs的视频,没有实际操作过,最近又开始着手学习了Vue,在这里记录我的学习过程,方便日后自己查阅

官网:VueJs的官网


VueJs的安装和初始化项目:

npm  install  --global  vue-cli               # 全局安装 vue-cli

npm  install  -g    webpack

vue  init  webpack  my-project         # 创建一个基于 webpack 模板的新项目

cd  my-project

npm  install                                      # 安装依赖,走你

npm  run  dev

防止页面数据层闪烁  v-cloak


v-cloak

VueJs的实例:

<div  id = "app">

    <p>{{ msg }}</p>                             //  {}

    <p>{{ number + 1 }}</p>              //模板语法中是可以写表达式的

   <p>{{ ok ? 'YES' : 'NO' }}</p>

   <p>{{ message.split('').reverse().join('') }}</p>

    <p v-text = "msg"></p>

    <p v-html = "msg"></p>

    <div  v-on:click="dosomething">事件绑定</div>               //事件绑定

    <div  @click="dosomething">事件</div>                          //事件绑定简写       @keyup.enter  指定回车键触发函数

    <formv-on:submit.prevent="onSubmit"></form>        //.prevent修饰符告诉v-on指令对于触发的事件调用 event.preventDefault

    <div  v-if="istrue">是否渲染</div>                           //条件渲染

    <div v-else>no</div>                                              //可以使用v-else指令来表示v-if的“else 块”

    <div  v-show="isshow">是否显示</div>

    <div  v-for="item  in  items"  :key="item.id">        //循环绑定 ,加key值数据更新时进行排序

        <p v-text="item.name"></p>         

    </div>

    <div v-for=" (item, index)  in  items">                    // 还可以循环对象  <div  v-for=" (value, key)  in  object">

        <p>{{   item.name : index }}</p>

    </div>

    <img  v-bind:src="imagesrc">                                //属性绑定

    <div  :id= "divId"></div>

    <div  v-bind:id = " 'list-' + id "></div>

    <div  :class= "{ red :  isRed, seqBox : true }"></div>                    //属性绑定简写

    <div  :class=" index < 5 &&  'top' " > </div>      //当index<5时,class可以取top值

    <div  :class= "[ classA , classB ]"></div>

    <div  :class= "[isActive ? activeClass : '', errorClass]"></div>

    <div  :class= "[ classA , { classB : isB,  classC : isC }]"></div>

    <div  v-bind:style="{ color: activeColor, fontSize: fontSize + 'px' }"></div>

    <div  v-bind:style="styleObject"></div>

    <div  :style="{ display: ['-webkit-box', '-ms-flexbox', 'flex'] }"></div>

</div>



数据层:

var  vm  =  new  Vue({

    el: "#app",

    data: {                                                     //数据

        a: 3,

        msg: "你好",

        activeColor:  'red',

        fontSize:  30

        styleObject: {

            color:  'red',

            fontSize:  '13px'

        }

    },

    mounted: function(){                              //生命周期,就是1.0中的ready

        this.$nextTick(function () {                 //这样是比较保险的


        })

    },

    filters: {                                                   //自定义过滤器

        capitalize: function (value) {

            if (!value)   return  ' '

            value  =  value.toString()

            return  value.charAt(0).toUpperCase() + value.slice(1)

        }

    },

    methods:{                                               //方法

        dosomething:  function() {  }

    },

    watch:  {

        'a' : function (val, oldval ) {  }             //监听数据a的变化,新的值和旧的值

    },

    computed: {                                          //计算属性

        classObject: function () {

            return{

                active:this.isActive && !this.error,

               'text-danger':this.error &&this.error.type ==='fatal'

           }

       }

    }

})


条件渲染1
条件渲染2
数组数据更新
数据更新注意事项


添加响应属性

v-for 显示过滤排序:


v-for显示过滤排序

v-for也可以用在template上进行渲染多个元素

v-for与v-if同事作用一个元素上时,v-for的优先级高于v-if,如下:

v-for与v-if



组件:

组件都是以  .vue结尾的;


组件的通讯:

    传固定字符串:

传固定字符串
固定字符串驼峰法
动态传值

传一个对象:

组件动态传对象

组件 prop验证:


prop验证

子组件向父组件通讯:  $emit()

$emit

组件 .sync修饰符:

.sync修饰符

非父子组件通讯:

费父子组件通讯

父子组件单个插槽:

单个插槽


具名插槽:


具名插槽1
具名插槽2


子组件索引:

子组件索引

组件的声明与使用:

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

推荐阅读更多精彩内容