首页 > 其他分享 >vue 基础学习笔记【一】

vue 基础学习笔记【一】

时间:2023-01-03 15:33:39浏览次数:43  
标签:npm vue 代码 笔记 js 学习 Vue 复制


vue.js简介

概念:构建用户界面的渐进式框架

(渐进式:不必一开始就用Vue所有的全家桶,根据场景,官方提供了方便的框架供你使用。)

Vue 的核心库只关注视图层。

引入vue

可以​​创建一个 .html​​,然后通过如下方式引入 Vue:

 

<!-- 开发环境版本,包含了有帮助的命令行警告 -->
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>复制代码
<!-- 生产环境版本,优化了尺寸和速度 -->
<script src="https://cdn.jsdelivr.net/npm/vue"></script>复制代码

 

$ npm install vue复制代码

安装脚手架:

 

1. cnpm install webpack -g复制代码

 

2. npm install vue -cli -g

3. vue init webpack myproject复制代码

 

4. cd 目录路径复制代码

 

5. npm install复制代码

 

6. npm run dev复制代码

Project name 【输入项目名】

Project description 【项目描述】

Use ESlint to lint your code? 【代码检查】

Set up unit tests 【测试】

Setup e2e tests with Nighwatch? 【测试】

在通过npm安装项目后,我们需要对其目录进行解析:

(1) Build:项目构建(webpack)相关代码;

(2) config:配置目录,包括端口号等。

(3) node_modules:npm加载的项目依赖模块

(4) src:这个目录当中的内容包含了我们基本上要做的事情,这里包含了几个文件:

(一)assets:存放图片

(二)components:存放组件文件

(三)App.vue:项目入口文件,组件也可以直接写在这里不适用components

(四)main.js:核心文件

(5) static:静态资源目录

(6) test:初始测试目录

(7) .xxxx:配置文件,包括git配置和语法配置等

(8) index.html:首页

(9) package.json:项目配置文件

 

(10) README.md:说明文档

兼容性:

Vue 不支持 IE8 及以下版本,因为 Vue 使用了 IE8 无法模拟的 ECMAScript 5 特性。但它支持所有​​兼容 ECMAScript 5 的浏览器​​。

 

创建vue实例

var vm = new Vue({
// 选项
})复制代码

生命周期函数

1.beforeCreate 创建前执行(data和el都还未初始化) 

 2.create 完成创建 (完成了data数据初始化,el还未初始化) 

 3.beforeMount 载入前(完成了data和el数据初始化) 

 4.mounted 载入后html已经渲染(ajax请求可以放在这个函数中) 

 5.beforeUpdate 更新前状态(view层的数据变化前,不是data中的数据改变前) 

 6.update 更新状态后 

 7.beforeDestroy 销毁前 

 8.destroy 销毁后 (Dom元素存在,只是不再受vue控制)

 

模板语法

插值表达式:{{ msg}}

v-html:动态注入标签,注意:你的站点上动态渲染的任意 HTML 可能会非常危险,因为它很容易导致 ​​XSS 攻击​​。请只对可信内容使用 HTML 插值,绝不要对用户提供的内容使用插值。

​​v-bind​​:动态绑定一个或多个html属性,绑定时注意属性前加冒号:disabled/:id

v-if:条件判断,根据真假判断条件符合即渲染结果。在切换时元素及它的数据绑定 / 组件被销毁并重建。

v-else:限制:前一兄弟元素必须有 ​​v-if​​​ 或 ​​v-else-if​​。

v-else-if:前一兄弟元素必须有 ​​v-if​​​ 或 ​​v-else-if​​。

v-on:用来监听事件,绑定事件 (可缩写为@click)

阻止默认事件:【v-on:click.prevent="go(index,$event)"】

阻止默认事件冒泡:【v-on:click.stop="go(index,$event)"】

只生效一次:【v-on:click.once="go(index,$event)"】

键盘事件监听:【v-on:keyup.enter="write"】

v-text: 更新元素的 ​​textContent​​​。如果要更新部分的 ​​textContent​​​ ,需要使用 ​​{{ Mustache }}​​ 插值。

v-show:根据表达式之真假值,切换元素的 ​​display​​ CSS 属性。

v-for:基于源数据多次渲染元素或模板块,​​v-for​​​ 指令需要使用 ​​item in items​​ 形式的特殊语法。最好加上:key

v-model:在表单控件或者组件上创建双向绑定。

v-once:只渲染元素和组件一次

【v-if有更高的切换开销,v-show有更高的初始渲染开销,频繁切换使用v-show,条件很少改变使用v-if】

特殊特性

有相同父元素的子元素必须有独特的 key。重复的 key 会造成渲染错误。

最常见的用例是结合 ​​v-for​

计算属性

computed:{}复制代码

有侦听的效果,写在计算属性中的方法可以直接在插值表达式中使用;

绑定class

<div v-bind:class="{ active: isActive }"></div>复制代码

上面的语法表示 ​​active​​​ 这个 class 存在与否将取决于数据属性 ​​isActive​​ 的 状态。

​v-bind:class​​ 指令也可以与普通的 class 属性共存,例如:

<div class="static"
v-bind:class="{ active: isActive, 'text-danger': hasError }">
</div>复制代码

全局API

filter:

Vue.filter('my-filter', function (value) {
// 返回处理后的值
})

// getter,返回已注册的过滤器
var myFilter = Vue.filter('my-filter')复制代码

例:

data(){

nums:[1,2,3,4,5,6,7],

},

methods:{

   getOdd(){

this.nums.filter(function(num){

    if (num % 2 !==0){

        console.log(num);}})

}}

 

component:

// 注册组件,传入一个扩展过的构造器
Vue.component('my-component', Vue.extend({ /* ... */ }))

// 注册组件,传入一个选项对象 (自动调用 Vue.extend)
Vue.component('my-component', { /* ... */ })复制代码

其他:

watch只能监听一个对象

computed可以对多个对象进行监听

安装配置路由

1 npm install --save vue-router 

2 main.js下:import router from './router',new Vue里添加router

3 index.js里:import Router from 'vue-router'

 Vue.use(Router)

4 视图加载的位置:<router-view></router-view>

5 实现类似选项卡或者锚点链接的功能 用于组件间的跳转 使用标签 进行跳转 

 <router-link to="/words">words</router-link> 

<router-link to="/Navlist/words">words</router-link>复制代码

6 在index.js注入的地方加上:redirect:"/test2/test1", 即默认显示哪个子页面

7 【路由点击高亮效果】 全局:

 index.js里面给全局添加一个class名,然后全局都可以使用这个class 在export default new Router里写:linkActiveClass: "active", 

然后在想要路由点击高亮的页面style里: .active{ color: red; }

 

懒加载

安装:cnpm install vue-lazyload --save-dev 

引入在main.js中: import VueLazyload from 'vue-lazyload' 

Vue.use(VueLazyload) 

在要加载的页面使用标签: <img v-lazy="imgUrl"/> imgUrl为data中的数据

 

使用swiper

1 cnpm install --save vue-awesome-swiper

2 main.js里:

 import VueAwesomeSwiper from 'vue-awesome-swiper'

import 'swiper/dist/css/swiper.css'

Vue.use(VueAwesomeSwiper)复制代码

使用element

1 npm i element-ui -S

2 main.js里:

import ElementUI from 'element-ui';

import 'element-ui/lib/theme-chalk/index.css';

Vue.use(ElementUI);

 

引入jQuery

1 npm install jquery --save-dev

2 在build/webpack.base.conf.js中添加如下内容:

​​var​​​ ​​webpack = require(​​​​'webpack'​​​​)​​
​​plugins: [​​
​​new​​​ ​​webpack.ProvidePlugin({​​
​​$: ​​​​"jquery"​​​​,​​
​​jQuery: ​​​​"jquery"​​
​​})​​

​​],​​

3 在src/main.js文件中 引入jquery或在单页面中引用

​import $ ​​​​from​​​ ​​'jquery'​

4 npm run dev

5 mounted()里调用

 

vue安装Bootstrap

1、安装bootstrap,使用命令npm install bootstrap --save-dev

2、在package.json文件中引入bootstrap这个模块

3、在src/main.js文件中 引入jquery

​​import ​​​​'bootstrap/dist/css/bootstrap.min.css'​​
​​import ​​​​'bootstrap/dist/js/bootstrap.min'​​

 

标签:npm,vue,代码,笔记,js,学习,Vue,复制
From: https://blog.51cto.com/u_12422954/5986033

相关文章

  • vue 高德地图 即时搜索 模糊搜索 下拉搜索
    index.html里面引入amap:首先你要去  ​​https://lbs.amap.com/​​ 注册一个属于自己的key注册好账号后--点击右上角‘控制台’--左侧边栏‘应用管理--我的应用’---点......
  • 性能测试技术笔记(一):如何快速上手压测工作
    新年第一个工作日,继续整理之前的技术笔记。前面通过三篇的内容,将自动化测试相关的技术笔记做了整理汇总。这篇内容,主要是我刚开始做性能测试时的一些记录,对新手或者刚进......
  • 分享我的k8s学习过程
    我假期里听说要加班就没出去玩,在家看​​k8s​​,基本上过了一遍,有同学好奇我的学习资料和学习过程,今天就分享给大家,多少有一些借鉴意义。我很早之前买了阳明的视频课来学......
  • react Router 学习
     功能:1.进入项目后的默认路径是home,默认展示首页模块2.点击路由,切换子组件3.点击文章路由,根据传值不同进入三级详情路由,同时二级路由不显示4.点击返回首页,跳转到首页 安装......
  • vue vuex 学习小demo
    创建store.js 引入并使用vueximport Vuex from 'vuex'Vue.use(Vuex)1.使用new Vuex.Store创建({})创建store2.创建state:{}存放数据3.mutations:{}存放方法4.actions:{}......
  • react 日常工作小笔记
    默认配置defaultProps默认配置通过 ​​||​​​ 操作符可以实现,React.js也提供了一种方式 ​​defaultProps​​,可以方便的做到默认配置。classLikeButtonextendsC......
  • js String对象学习
    //charAt()方法从一个字符串中返回指定的字符。letstr='WinterWang'console.log(str.charAt(1))//i//includes()方法用于判断一个字符串是否包含在另一......
  • vue3.0的全局api变化
    1.全局api使用的变化:vue3已经去除Vue语法,取代的是用createApp创建的app  2.其他改变2.1data函数的变化,在vue3data必须是一个函数,否则报错     2.2过......
  • UML学习(一)-----用例图
    1、什么是用例图用例图源于Jacobson的OOSE方法,用例图是需求分析的产物,描述了系统的参与者与系统进行交互的功能,是参与者所能观察和使用到的系统功能的模型图。它的主......
  • vue3.0新组件
    1.fragment1.1解释和意义   1.2使用:没有特定的标签,直接不使用根标签即可2.teleport(传送)1.1解释和意义:不管嵌套多少层都可以直接进行组件传送1.2使用:t......