vue组件笔记

课堂内容

"""
1、表单指令:
    v-model="变量"   变量与value有关
    普通:变量就代表value值
    单选框:变量为多个单选框中的某一个value值
    单一复选框:变量为布尔,代表是否选中
    多复选框:变量为数组,存放选中的选项value
    
    
2、条件指令:
    v-show:  display:none
    v-if:    不渲染
    v-if | v-else-if | v-else
    前者条件成立,就不管之后分支,当所有条件都不成功,才执行v-else分支
    
3、循环指令:
    v-for="(v, i) in str|arr"   
    v-for="(v, k, i) in dic"
    v:值 k:键 i:索引

4、sessionStorage | localStorage
    sessionStorage:生命周期同所属标签(标签关闭被销毁)
    localStorage:永久保存
    localStorage.key = value
    localStorage.clear()

5、分隔符:delimiters: ['[{', '}]'],

6、过滤器:
    {{ n1, n2 | f1(30) | f2 }}
    
    filters: {
        f1(n1,n2,n3) {return 过滤结果},
        f2(f1的res) {return 过滤结果},
    }

7、计算属性:
    result必须渲染;绑定的方法内部出现的变量更新方法被调用;方法返回值是result的值;result不能在data中重复定义
    computed: {
        result() {
            // 一个方法属性值依赖于多个变量
            return this.n1 + this.n2;
        }
    }

8、监听属性:
    监听属性属性更新方法被调用;方法参数为被监听属性当前值,上一次值;多个变量依赖一个变量
    watch: {
        full_name(n, o) {
            this.first_name = n.split('')[0]
            this.last_name = n.split('')[1]
        }
    }
    
9、冒泡排序:
    for (let i=0; i<arr.length-1; i++) {  // 趟数
        for (let j=0; j<arr.length-1-i; j++) {  // 比较次数
            // 处理条件即可
            if (arr[j]参数 > stus[j + 1]参数) {
                let temp = stus[j];
                stus[j] = stus[j + 1];
                stus[j + 1] = temp;
            }
        }
    }
"""

Vue基础知识

"""
组件:
    组件概念:vue实例就是组件
    根组件、局部组件、全局组件
    组件传参:
        父传子:自定义组件属性
        子传父:自定义组件事件
    
实例成员:
    el、data、methods、computed、watch、filters、delimiters、props、template、components

指令:
    {{}}、v-text、v-html、v-once、v-on、v-model、v-bind、v-if、v-show、v-else-if、v-else、v-for、v-cloak
"""

Vue项目环境

"""
vue ~~ Django

node ~~ Python

npm ~~ pip
"""

Vue项目环境搭建

"""
node ~~ python:node是用c++编写用来运行js代码的
npm(cnpm) ~~ pip:npm是一个终端应用商城,可以换国内源cnpm
vue ~~ django:vue是用来搭建vue前端项目的

1) 安装node
官网下载安装包,傻瓜式安装:https://nodejs.org/zh-cn/

2) 换源安装cnpm
>: npm install -g cnpm --registry=https://registry.npm.taobao.org

3) 安装vue项目脚手架
>: cnpm install -g @vue/cli

注:2或3终端安装失败时,可以清空 npm缓存 再重复执行失败的步骤
npm cache clean --force
"""

Vue项目创建

1) 进入存放项目的目录
>: cd ***

2) 创建项目
>: vue create 项目名

3) 项目初始化

pycharm配置并启动vue项目

1) 用pycharm打开vue项目
2) 添加配置npm启动

vue项目目录结构分析

├── v-proj
|   ├── node_modules    // 当前项目所有依赖,一般不可以移植给其他电脑环境
|   ├── public          
|   |   ├── favicon.ico // 标签图标
|   |   └── index.html  // 当前项目唯一的页面
|   ├── src
|   |   ├── assets      // 静态资源img、css、js
|   |   ├── components  // 小组件
|   |   ├── views       // 页面组件
|   |   ├── App.vue     // 根组件
|   |   ├── main.js     // 全局脚本文件(项目的入口)
|   |   ├── router
|   |   |   └── index.js// 路由脚本文件(配置路由 url链接 与 页面组件的映射关系)
|   |   └── store   
|   |   |   └── index.js// 仓库脚本文件(vuex插件的配置文件,数据仓库)
|   ├── README.md
└   └── package.json等配置文件

vue组件(.vue文件)

# 1) template:有且只有一个根标签
# 2) script:必须将组件对象导出 export default {}
# 3) style: style标签明确scoped属性,代表该样式只在组件内部起作用(样式的组件化)
<template>
    <div class="test">
        
    </div>
</template>

<script>
    export default {
        name: "Test"
    }
</script>

<style scoped>

</style>

全局脚本文件main.js(项目入口)

import Vue from 'vue'
import App from './App.vue'
import router from './router'
import store from './store'

Vue.config.productionTip = false

new Vue({
    router,
    store,
    render: h => h(App)
}).$mount('#app')
改写
import Vue from 'vue'  // 加载vue环境
import App from './App.vue'  // 加载根组件
import router from './router'  // 加载路由环境
import store from './store'  // 加载数据仓库环境

Vue.config.productionTip = false
new Vue({
    el: '#app',
    router,
    store,
    render: function (readFn) {
        return readFn(App);
    },
});

```

猜你喜欢

转载自www.cnblogs.com/zhm-cyt/p/12063368.html