Vue备忘

Vue-cli的安装

  1. 安装2.x npm i -D vue-cli
  2. 安装3.x npm i -D @vue/cli

利用cli创建项目:

  1. 2.x vue init webpack appName
  2. 3.x vue create appName
  3. 3.x 中一种方式:vue ui 它将自动启动浏览器8000端口,可以使用图形化的方式进行项目的创建和管理。

事件处理中的this

greet: function (event) {
      // `this` 在方法里指向当前 Vue 实例
      alert('Hello ' + this.name + '!')
      // `event` 是原生 DOM 事件
      if (event) {
        alert(event.target.tagName)
      }

渲染错位的问题

在Vue中对<li>、<tr> 和 <option>有着较严格的约束,其只能出现在指定的父元素中,如:

<table>
            <book></book>
        </table>

会导致渲染出错,此时可以采用如下方式(关键是is="book")

 <table>
            <tr v-for="book of books" is="book" :book="book"></tr>
     </table>

但注意:当子组件是来自于.vue文件的,是不存在上述问题的。

Vue的动画,css设定技巧:

  1. 设置:“进入后”的动画和“”离开时“的动画(以fade为例)
.fade-enter-active, .fade-leave-active {
  transition: opacity .5s;
}

说明:进入和离开的动画效果为:透明度的变化在0.5秒完成

  1. 设置:”进入前“的状态和”离开后“的状态(注:该类在进入和离开后,将被删除)
fade-enter, .fade-leave-to {
  opacity: 0;
}

说明:进入动画开始前和离开动画结束后,透明度为0。(隐含:离开动画开始前和进入动画结束后,透明度保持元素现有状态)

template的另一种优雅的使用方式:

<script type="text/x-template" id="temp1">
        <div>
        <!-- content -->
        </div>
    </script>
    <script>
        Vue.component("demo1",{
            template:'#temp1'
        });
  </script>

渲染函数

可以使用render渲染函数取代template的定义,它更接近于编译器底层,同时这将使得模板代码的定义极具灵活性:

render: function (createElement) {
    return createElement(
      'h' + this.level,   // 标签名称
      this.$slots.default // 子元素数组
    )
  },

上面代码,传入一个createElement函数,它的返回结果是一个VNode。

createElement函数的使用:

其返回一个VNode元素,使用方式如下所示:

// @returns {VNode}
createElement(
  // {String | Object | Function}
  // 一个 HTML 标签字符串,组件选项对象,或者
  // 解析上述任何一种的一个 async 异步函数。必需参数。
  'div',

  // {Object}
  // 一个包含模板相关属性的数据对象
  // 你可以在 template 中使用这些特性。可选参数。
  {
    // (详情见下一节)
  },

  // {String | Array}
  // 子虚拟节点 (VNodes),由 `createElement()` 构建而成,
  // 也可以使用字符串来生成“文本虚拟节点”。可选参数。
  [
    '先写一些文字',
    createElement('h1', '一则头条'),
    createElement(MyComponent, {
      props: {
        someProp: 'foobar'
      }
    })
  ]
)

$slot的使用

在“组件标签”的使用,会以上两种形传入slot

<my-comp>
<p slot="a">slot a</p>
this is default slot
</my-comp>

此时可以在template中可以使用如下方式获取:

template:'<div>this is default :<slot></slot></div>'

在render中,可以:

render:function(createElement){
  let default=this.$slots.default;
  let a=this.$slots.a;
}

axios的基本使用:

const axios =require('axios');

axios({
    method: 'post',
    url: 'http://localhost:3000/users',
    data: {uname:'ba'},
    headers:{"Action":"do"}
}).then(function (resp) {
    console.log(JSON.stringify(resp.data));
}).catch(function (err) {
    console.log(err);
});
  1. 它可以在浏览器和node环境中使用
  2. 它会智能的根据data的特点,设置Content-Type和Accept头

简单演示Vue-Router的使用

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Title</title>
    <script src="https://cdn.bootcss.com/vue/2.6.10/vue.min.js"></script>
    <script src="js/vue-router.js"></script>
</head>
<body>
    <div id="app">

        <router-link to="/">go home</router-link>
        <router-link to="/about">go about</router-link>
        <hr>
        <router-view></router-view>
    </div>

    <script>
        let home={template:'<h1>home</h1>'}
        let about={template:'<h1>about</h1>'}
        let router=new VueRouter({routes:
                [{path:'/',name:'home',component:home},
                    {path:'/about',name:'about',component:about}
                ]})

        new Vue({router:router,el:'#app'})

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

推荐阅读更多精彩内容