2019-07-08

<div id="app">
<span>{{messaeg}}</span>
</div>
<script src="vue的地址"></script>
<script>
var vm = new({
el:'#app',
data:{
message:"呵呵",

}

})

</script>

v-text和差值表达式的区别:“v-text”会覆盖标签里的内容,v-text默认不会出现顿闪,{{}}差值表达式要v-clock [v-clock]{
dispaly:none
}

v-html 解析data里的标签<div>呵呵</div>

input的title属性:鼠标放上去展示的文字消息
value:值
type:类型

绑定属性:v-bind


image.png

v-bind会中可以写合法的js表达式子


image.png

简写的形式:一个:冒号

v-on事件的指令
简写@
methods:{
//中间写方法

}


image.png

跑马灯效果
1,基本结构


image.png

2,绑定事件
3,截取字符串
4,开启定时器
5,赋值


image.png

image.png

image.png

箭头函数this指向外部的this


image.png

事件修饰符


image.png

vue会监听data中的数据,数据只要一更新就会渲染
默认冒泡
事件冒泡机制
父盒子包裹子盒子,同时注册点击事件,先触发子盒子再父盒子的


image.png

阻止冒泡修饰符.stop
给子盒子添加事件修饰符阻止向外冒泡,就是只触发子盒子的事件


image.png

阻止默认行为
比如a标签的默认行为就是跳转href
prevent修饰符就阻止了默认行为


捕获机制从外到里
给父盒子添加修饰符capture 先执行父盒子再执行子盒子的事件
和冒泡相反

.self修饰符,只当事件在自身上点击时触发
冒泡是被动触发,从内到外,给父盒子添加.self修饰符 只在自身上点击触发,冒泡或者捕获不应触发

once修饰符 只触发一次
[图片上传中...(image.png-777cca-1562595465280-0)]
第一次阻止了,第二次没阻止,所以只阻止一次

.stop和.self的区别
.stop 阻止所有的元素
.self只是self自己的那个元素,其他元素的不阻止

有一点点点像break和return

v-model双向数据绑定
表单独有的
input select textarea

简易的计算器


image.png

简单的eval()解析


image.png
image.png

image.png

:class


image.png

vue中的样式
1, 先定义3个style样式


image.png

一个激活的样式


image.png

letter-spacing:中文间隔
word-spaning:英文间隔
数组中使用三元表达式


image.png

对象的形式


image.png

直接使 用对象

绑定内联style
[图片上传中...(image.png-3f7312-1562598047133-0)]
如果属性包含- 添加引号

image.png

image.png

v-for 循环迭代遍历
[图片上传失败...(image-8d6d58-1562598680479)]

键,值,索引
v-for迭代数字


image.png
image.png

数组中追加


image.png

image.png

[图片上传中...(image.png-c82646-1562599514882-0)]
key用字符串或者number

image.png

image.png

总结:


image.png

image.png

http://www.liulongbin.top:3005

2,搜索


image.png
image.png
image.png

image.png
image.png
image.png

image.png
image.png
image.png

直接return

image.png

过滤器

image.png

过滤器的简单使用

image.png

正则替换

image.png

过滤器传参

image.png

过滤器传多个参数

image.png

过滤器的多次调用

image.png

从左往右依次处理


image.png

全局时间过滤器

image.png

年月日时分秒过滤器

image.png

形参的模拟值es6

image.png

私有的过滤器

image.png

名称一致优先调用私有的过滤器

image.png

字符串填充

image.png

image.png

按键修饰符

image.png

按键修饰符的键盘码值

image.png

自定义全局按键修饰符

image.png

image.png

自定义指令

image.png

全局组件

https://blog.csdn.net/qq_40141204/article/details/82980116
https://blog.csdn.net/runOnWay/article/details/78998631

css样式相关的可以写在bind中

image.png

钩子函数参数

image.png

image.png

image.png

私有指令

image.png

image.png

简写形式

image.png

image.png

image.png

vue实例的生命周期

image.png

image.png

image.png

image.png

image.png

image.png

image.png

image.png

vue-resource

image.png
image.png

node.js服务器

image.png
image.png

image.png

客户端写方法

image.png

品牌的数据列表

image.png
image.png

vue-resource

https://www.npmjs.com/package/vue-resource
https://github.com/pagekit/vue-resource/blob/HEAD/docs/config.md

image.png

vue的动画

image.png

进入和离开的动画

image.png

自定义的动画样式名字

image.png

进场动画和立场的动画

image.png
image.png

放到元素的身上

image.png

【props】

image.png

入场的动画和立场的动画

image.png
<link href="https://cdn.jsdelivr.net/npm/animate.css@3.5.1" rel="stylesheet" type="text/css">

<div id="example-3">
  <button @click="show = !show">
    Toggle render
  </button>
  <transition
    name="custom-classes-transition"
    enter-active-class="animated tada"
    leave-active-class="animated bounceOutRight"
  >
    <p v-if="show">hello</p>
  </transition>
</div>

动画css
[https://cn.vuejs.org/v2/guide/transitions.html#JavaScript-%E9%92%A9%E5%AD%90](https://cn.vuejs.org/v2/guide/transitions.html#JavaScript-%E9%92%A9%E5%AD%90)


<transition
  v-on:before-enter="beforeEnter"
  v-on:enter="enter"
  v-on:after-enter="afterEnter"
  v-on:enter-cancelled="enterCancelled"

  v-on:before-leave="beforeLeave"
  v-on:leave="leave"
  v-on:after-leave="afterLeave"
  v-on:leave-cancelled="leaveCancelled"
>
</transition>

进入前和进入后

image.png
image.png

image.png

image.png

image.png

image.png

入场效果一进场就有动画


image.png

tag属性指定元素标签
image.png

vue的组件化

### [Vue.extend( options )](https://cn.vuejs.org/v2/api/#Vue-extend "Vue.extend( options )")

*   **参数**:

    *   `{Object} options`
*   **用法**:

    使用基础 Vue 构造器,创建一个“子类”。参数是一个包含组件选项的对象。

    `data` 选项是特例,需要注意 - 在 `Vue.extend()` 中它必须是函数

    ```
    <div id="mount-point"></div>
    ```

    ```
    // 创建构造器
    var Profile = Vue.extend({
      template: '<p>{{firstName}} {{lastName}} aka {{alias}}</p>',
      data: function () {
        return {
          firstName: 'Walter',
          lastName: 'White',
          alias: 'Heisenberg'
        }
      }
    })
    // 创建 Profile 实例,并挂载到一个元素上。
    new Profile().$mount('#mount-point')
    ```

    结果如下:

    ```
    <p>Walter White aka Heisenberg</p>
    ```

组件注册

image.png

官网

https://cn.vuejs.org/v2/guide/components-registration.html

第三种方法

image.png

私有组件

image.png

组件中的data必须是一个函数,并且return出来一个

image.png
image.png
image.png

为什么要加return的

image.png

通过return创建一个新的对象,不共享

image.png

组件的切换

image.png

image.png

组件切换的第二种方式

image.png

image.png

image.png

父子组件的传值方式

image.png

父组件到子组件传递方法

image.png

子组件$emit触发父组件传递的自定义方法

image.png

image.png

子组件, 向父组件传参,传值

image.png

发表评论

image.png

this.$ref获取元素

image.png

修改路由高亮的类名

image.png

路由的标签添加一个动画

image.png

路由this.$route对象

image.png

image.png

查询字符串传参

image.png

路由解析

image.png

image.png

image.png

命名视图

image.png

image.png

侦听器

image.png

监听路由的改变

image.png

计算属性

image.png

image.png

nrm的使用

image.png

image.png

image.png

搭建项目工程,搭建文件结构

image.png

npm init -y初始化

webpack的安装和使用

1,npm i webpack -g全局安装
2,npm i webpack -S安装到项目依赖


image.png

image.png
image.png

image.png

安装3.6.0的版本 不安装4.0的

npm install webpack@3.6.0 -g 全局安装
npm install webpack@3.6.0 -S
如果安装了4.0直接卸载
npm uninstall webpack -g 全局安装
npm uninstall webpack -S

安装npm i webpack-dev-server -D
报错就安装低版本的,版本兼容导致的错误
npm i -D webpack-dev-server@2.9.3

image.png

配置热更新
https://www.jianshu.com/p/fc2df1ceb8e7

image.png

页面保存到内存

安装插件

cnpm i html-webpack-plugin -D

const path = require('path');
// 3.6版本热更新的第一步
const webpack = require('webpack')
//   "dev2": "webpack-dev-server --open --port 3000 --contentBase src --hot",
// 导入在内存生成html页面的插件
const HtmlWebpackPlugin = require('html-webpack-plugin')
// npm init -y
// npm i webpack-dev-server -D
module.exports = {
    // 3.6版本的写法
    // 入口
    entry: path.join(__dirname, './src/main.js'), //打包文件的入口,要打包哪些文件
    // 出口
    output: {
        path: path.join(__dirname, './dist'), //打包后的文件输出路径
        filename: "bundle.js" //输出文件的名称
    },
    //开发服务配置
    devServer: {
        proxy: { // proxy URLs to backend development server
            //   '/api': 'http://localhost:3000'
        }, //代理
        open: true, //自动打开浏览器
        port: 3000, //设置端口
        contentBase: path.join(__dirname, 'src'), // boolean | string | array, static file location 打开的根路径
        // 3.6版本热更新的第二步
        hot: true, // hot module replacement. Depends on HotModuleReplacementPlugin  热更新
        compress: true, // enable gzip compression  开启gzip压缩
        historyApiFallback: true, // true for index.html upon 404, object for multiple paths  
        https: false, // true for self-signed, object for cert authority
        noInfo: true, // only errors & warns on hot reload
        // ...
    },
    //   插件的配置
    plugins: [
        //  3.6版本热更新的第三步
        // 配置热更新的节点
        new webpack.HotModuleReplacementPlugin(), //new一个热更新的模块对象
        // 插件
        new HtmlWebpackPlugin({
            title: 'Hello World app', //html文件的标题
            // minify 的作用是对 html 文件进行压缩
            minify: { // 压缩HTML文件
                //是否对大小写敏感,默认false
                caseSensitive: true,
                //是否简写boolean格式的属性如:disabled="disabled" 简写为disabled  默认false
                collapseBooleanAttributes: true,

                //是否去除空格 删除空白符与换行符,默认false
                collapseWhitespace: true,

                //是否压缩html里的css(使用clean-css进行的压缩) 默认值false;
                minifyCSS: true,

                //是否压缩html里的js(使用uglify-js进行的压缩)
                minifyJS:true,

                //Prevents the escaping of the values of attributes
                preventAttributesEscaping: true,

                //是否移除属性的引号 默认false
                removeAttributeQuotes: true,

                //是否移除html注释 默认false
                removeComments: true,

                //从脚本和样式删除的注释 默认false
                removeCommentsFromCDATA: true,

                //是否删除空属性,默认false
                removeEmptyAttributes: true,

                //  若开启此项,生成的html中没有 body 和 head,html也未闭合
                removeOptionalTags: false,

                //删除多余的属性
                removeRedundantAttributes: true,

                //删除script的类型属性,在h5下面script的type默认值:text/javascript 默认值false
                removeScriptTypeAttributes: true,

                //删除style的类型属性, type="text/css" 同上
                removeStyleLinkTypeAttributes: true,

                //使用短的文档类型,默认false
                useShortDoctype: true, // 压缩内联css
            },
            template: path.join(__dirname, './src/index.html'), //指定模板,放入内存中,模板的路径
            filename: 'index.html', //输出的文件名,
            inject: true, //默认script标签放在body底部  body与true相同 head放在head标签内   false:不插入生成的js文件 只是单纯的生成一个html文件
            favicon: '', //给html文件生成一个favicon 属性值为 favicon 文件所在的路径名
            hash: true,//避免缓存添加hash的值 <script type=text/javascript src=bundle.js?22b9692e22e7be37b57e></script>
            cache:true,//默认是true的,表示内容变化的时候生成一个新的文件。
            showErrors:true,//这个我们自运行项目的时候经常会用到,showErrors 的作用是,如果 webpack 编译出现错误,webpack会将错误信息包裹在一个 pre 标签内,属性的默认值为 true ,也就是显示错误信息。
            // 开启这个,方便定位错误
            // chunks: ['main','index'],//chunks主要用于多入口文件,当你有多个入口文件,那就回编译后生成多个打包后的文件,那么chunks 就能选择你要使用那些js文件 <script type=text/javascript src="index.js"></script>
            // <script type=text/javascript src="main.js"></script>
            excludeChunks: ['devor.js'],//排除掉一些js
            xhtml:false //如果为 true ,则以兼容 xhtml 的模式引用文件。

        })

    ]

    // 4.0版本的写法
    // mode: 'production',
    // mode: 'development',
    // 简写的
    // entry: {
    //     main:'./src/main.js',
    //     he:'./src/hee.js'
    // },
    // entry: {
    //     index: path.resolve(__dirname, './src/index.js'),
    //     devor: path.resolve(__dirname, './src/devor.js'),
    //     main: path.resolve(__dirname, './src/main.js')
    // },
    // output: {
    //     path: path.resolve(__dirname, 'dist'),
    //     filename: '[name].js'
    // },
    // module: {
    //     rules: [{
    //         test: /\.txt$/,
    //         use: 'raw-loader'
    //     }]
    // },
    // rules: [{
    //     test: /\.css$/,
    //     use: [{
    //             loader: 'style-loader'
    //         },
    //         {
    //             loader: 'css-loader',
    //             options: {
    //                 modules: true
    //             }
    //         }
    //     ]
    // }],
    // plugins: [
    //     new HtmlWebpackPlugin({
    //         template: './src/index.html'
    //     })
    // ]
};

webpack默认只能处理js,安装loader处理css

npm install style-loader css-loader -D


image.png

image.png

https://www.npmjs.com/package/sass-loader
less
image.png

sass
image.png

https://www.npmjs.com/package/sass-loader
image.png

处理1,css 安装
https://www.cnblogs.com/lskzj/p/9270839.html

image.png

image.png

image.png

2,处理安装less


image.png

3,处理sass
image.png

4,url,file-loader加载(url-loadedr是file-loader加强版)


image.png

image.png

image.png

之前是什么名字 之后也是 不改变
image.png

image.png

image.png

babel

image.png

https://www.webpackjs.com/loaders/babel-loader/
npm install babel-loader babel-core babel-preset-env webpack

image.png

image.png

image.png

image.png

render函数渲染

image.png
image.png

vue文件打包

image.png

image.png

image.png

引包和暴露

image.png

export暴露通过{}接收

image.png

image.png

样式作用域

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