• 博客园logo
  • 会员
  • 周边
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录
大自然搬运工
博客园    首页    新随笔    联系   管理    订阅  订阅

vue学习笔记

vue.jsApi文档

vue.js官方教程

vue.js

总结:

1.new Vue()实例

data 用于定义属性,实例中有三个属性分别为:site、url、alexa。

methods 用于定义的函数,可以通过 return 来返回函数值。

{{ }} 用于输出对象属性和函数返回值。

2.vue模板语法

文本插值

v-html

属性

表达式

指令

参数

修饰符

v-model数据双向绑定

过滤器

v-bind   :

v-on     @

3.v-if

配合template使用

4.v-for

v-for 指令需要以 site in sites 形式的特殊语法

配合template使用

5.计算属性computed

computed vs methods

computed 是基于它的依赖缓存,只有相关依赖发生改变时才会重新取值。而使用 methods ,在重新渲染的时候,函数总会重新调用执行

computed setter

6.监听属性watch

7.样式绑定关键字

语法格式

v-bind:class = “”

class

style(内联样式,对象、数组)

8.事件处理器关键字

v-on

事件修饰符

按键修饰符

9.表单关键字

v-model数据双向绑定

v-model 会根据控件类型自动选取正确的方法来更新元素。

修饰符

10.组件

全局注册语法格式

Vue.component(tagName, options)

局部组件注册语法格式

var Child = { template: '<h1>自定义组件!</h1>' } // 创建根实例 new Vue({ el: '#app', components: { // <runoob> 将只在父模板可用 'runoob': Child } })

Prop

prop 是父组件用来传递数据的一个自定义属性

动态prop

v-bind实现

prop 是单向绑定的:当父组件的属性变化时,将传导给子组件,但是不会反过来。

Prop 验证

自定义事件

  • 使用 $on(eventName) 监听事件
  • 使用 $emit(eventName) 触发事件

自定义指令

全局指令

Vue.directive(tagname,配置)

局部指令

new Vue({
  el: '#app',
  directives: {
    // 注册一个局部的自定义指令 v-focus
    focus: {
      // 指令的定义
      inserted: function (el) {
        // 聚焦元素
        el.focus()
      }
    }
  }
})

11.钩子函数

 

钩子函数

 

指令定义函数提供了几个钩子函数(可选):

 

  • bind: 只调用一次,指令第一次绑定到元素时调用,用这个钩子函数可以定义一个在绑定时执行一次的初始化动作。

  • inserted: 被绑定元素插入父节点时调用(父节点存在即可调用,不必存在于 document 中)。

  • update: 被绑定元素所在的模板更新时调用,而不论绑定值是否变化。通过比较更新前后的绑定值,可以忽略不必要的模板更新(详细的钩子函数参数见下)。

  • componentUpdated: 被绑定元素所在模板完成一次更新周期时调用。

  • unbind: 只调用一次, 指令与元素解绑时调用。

 

钩子函数参数

 

钩子函数的参数有:

 

  • el: 指令所绑定的元素,可以用来直接操作 DOM 。

  • binding: 一个对象,包含以下属性:vnode: Vue 编译生成的虚拟节点。

    • name: 指令名,不包括 v- 前缀。
    • value: 指令的绑定值, 例如: v-my-directive="1 + 1", value 的值是 2。
    • oldValue: 指令绑定的前一个值,仅在 update 和 componentUpdated 钩子中可用。无论值是否改变都可用。
    • expression: 绑定值的表达式或变量名。 例如 v-my-directive="1 + 1" , expression 的值是 "1 + 1"。
    • arg: 传给指令的参数。例如 v-my-directive:foo, arg 的值是 "foo"。
    • modifiers: 一个包含修饰符的对象。 例如: v-my-directive.foo.bar, 修饰符对象 modifiers 的值是 { foo: true, bar: true }。
  • oldVnode: 上一个虚拟节点,仅在 update 和 componentUpdated 钩子中可用。1

 

 12.路由

Vue.js 路由允许我们通过不同的 URL 访问不同的内容。

通过 Vue.js 可以实现多视图的单页Web应用(single page web application,SPA)。

Vue.js 路由需要载入 vue-router 库

中文文档地址:vue-router文档。

 

安装

cdn https://unpkg.com/vue-router/dist/vue-router.js

npm  cnpm install vue-router

 

语法模板

<div id="app">
  <h1>Hello App!</h1>
  <p>
    <!-- 使用 router-link 组件来导航. -->
    <!-- 通过传入 `to` 属性指定链接. -->
    <!-- <router-link> 默认会被渲染成一个 `<a>` 标签 -->
    <router-link to="/foo">Go to Foo</router-link>
    <router-link to="/bar">Go to Bar</router-link>
  </p>
  <!-- 路由出口 -->
  <!-- 路由匹配到的组件将渲染在这里 -->
  <router-view></router-view>
</div>

<script>
// 0. 如果使用模块化机制编程,導入Vue和VueRouter,要调用 Vue.use(VueRouter)

// 1. 定义(路由)组件。
// 可以从其他文件 import 进来
const Foo = { template: '<div>foo</div>' }
const Bar = { template: '<div>bar</div>' }

// 2. 定义路由
// 每个路由应该映射一个组件。 其中"component" 可以是
// 通过 Vue.extend() 创建的组件构造器,
// 或者,只是一个组件配置对象。
// 我们晚点再讨论嵌套路由。
const routes = [
  { path: '/foo', component: Foo },
  { path: '/bar', component: Bar }
]

// 3. 创建 router 实例,然后传 `routes` 配置
// 你还可以传别的配置参数, 不过先这么简单着吧。
const router = new VueRouter({
  routes // (缩写)相当于 routes: routes
})

// 4. 创建和挂载根实例。
// 记得要通过 router 配置参数注入路由,
// 从而让整个应用都有路由功能
const app = new Vue({
  router
}).$mount('#app')

// 现在,应用已经启动了!
</script>

13.过度&动画

Vue 提供了内置的过渡封装组件,该组件用于包裹要实现过渡效果的组件。

语法格式

<transition name = "nameoftransition">
   <div></div>
</transition>

14.混入

混入 (mixins)定义了一部分可复用的方法或者计算属性。混入对象可以包含任意组件选项。当组件使用混入对象时,所有混入对象的选项将被混入该组件本身的选项。

关键字:选项合并

 

15.axios

 

安装方法
 
使用 cdn:

 

<script src="https://unpkg.com/axios/dist/axios.min.js"></script>

 

或

 

<script src="https://cdn.staticfile.org/axios/0.18.0/axios.min.js"></script>

 

使用 npm:

 

$ npm install axios

 

 

 

使用 bower:
$ bower install axios
使用 yarn:
$ yarn add axios

16.resource

 

 

Vue 要实现异步加载需要使用到 vue-resource 库。

 

Vue.js 2.0 版本推荐使用 axios 来完成 ajax 请求。

17.数据响应接口

 

Vue 不允许在已经创建的实例上动态添加新的根级响应式属性。

 

Vue 不能检测到对象属性的添加或删除,最好的方式就是在初始化实例前声明根级响应式属性,哪怕只是一个空值。

如果我们需要在运行过程中实现属性的添加或删除,则可以使用全局 Vue,Vue.set 和 Vue.delete 方法。

 

 

 

 
posted @ 2019-10-17 15:27  大自然搬运工  阅读(147)  评论(0)    收藏  举报
刷新页面返回顶部
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3