API—Vue.js

209 阅读1分钟

也就浏览器的同源策略,出于安全的考虑,只要是协议、域名、端口有一个不同就算是跨域,ajax请求就会失败。浏览器有同源策略主要是为了防止CSRF攻击,防止利用户的登录状态发起恶意请求。

初始化项目-关联远程分支

git remote add origin git@github.com:JYbmarawcp/ts-axios.git
git pull origin master
git add .
npm run commit
git push origin master

extend 写法:

<div id="mount-point"></div>
// 创建构造器
import Vue from 'vue'
var Profile = Vue.extend({
 template: '<p>{{firstName}}</p>',
 data: function () {
   return {
     firstName: 'Walter',
   }
 }
})
// 创建 Profile 实例,并挂载到一个元素上(坑!!!!!!!!!!)
new Profile().$mount('#mount-point')

component 写法:

<hello></hello>

Vue.component('hello',
{
  template: '<p>{{firstName}}</p>',
  data: function () {
    return {
      firstName: 'Walter',
    }
  }
}

结果都是一样的:

<p>Walter</p>

extend到底有什么优势呢?只要绕开官网的坑就明白了,生成的实例并不一定要"挂载到一个元素上"。也就是new 实例().mount()mount()的mount()的参数可以为空,但他依旧能生成一个实例。 那么问题来了,生成的实例不挂载到dom文档流里面,有什么用?木有关系!生成的实例里面有el这个参数,记录了生成的dom啊,这个dom你想插哪里插哪里。(document.body.appendChild(实例.el这个参数,记录了生成的dom啊,这个dom你想插哪里插哪里。(document.body.appendChild( 实例.el))

总结:component是extend的亲民版,但在实现某些特殊需求的时候,就需要用到extend,如alert组件,你肯定希望alert可以动态插入到body中,而不需要在dom文档流中放一个莫名其妙的alert,大部分时间他还是隐藏的。(你能用component实现我服你)

转载:blog.csdn.net/dkr38020598…