• day 68小结


    js原型补充

    <!DOCTYPE html>
    <html lang="zh">
    <head>
        <meta charset="UTF-8">
        <title></title>
    </head>
    <body>
        <div id="app">
        </div>
    </body>
    <script src="js/vue.js"></script>
    <script>
        new Vue({
            el: '#app',
            data: {
    
            }
        })
    </script>
    <script>
    
        function A() {}
    
        let a1 = new A();
        let a2 = new A();
    
        // 为A类添加原型 => 类似于类属性
        A.prototype.num = 100;
    
        console.log(a1.num);
        console.log(a2.num);
    
    
        // ES6语法下类
        class B {
            constructor(name) {
                this.name = name;
            }
        }
        let b1 = new B('Tom');
        let b2 = new B('Ben');
        B.prototype.count = 666;
        console.log(b1.count);
        console.log(b2.count);
    
        console.log(b1.name);
        console.log(b2.name);
    
        // 推导
        Vue.prototype.$ajax = 12345;
        // this.$ajax
    
    </script>
    </html>
    

    vue项目生命周期(重点)

    1, 启动项目,加载主脚本文件 main.js
    加载vue环境, 创建根组件完成渲染
    加载系统已有的第三方环境: router,store
    加载自定义的第三方环境与自己配置的环境: 后期项目不断添加

    2, router被加载, 就会解析router文件夹下的index.js 脚本文件,完成 路由-组件 的映射关系

    3, 新建视图组件 . vue(在views文件夹中) 在路由中配置(在router的index.js中), 设置路由跳转(在导航栏组件中Nav.vue)

    配置自定义全局样式

    配置全局样式: @就代表src文件夹的绝对路径, 官方提供require加载静态文件

    // import '@/assets/css/global.css'
    reuqire('@assets/css/global.css')
    

    路由逻辑跳转(重点)

    <script>
    	export default {
            name:"Nav",
            methods: {
                goHome() {
                    //console.log(this.$router); //控制路由跳转
                    //console.log(this.$route);	//控制路由数据
                    
                    if (this.$route.path !=='/') {
                        //this.$router.push('/');	// 往下再跳转一页
                        //this.$rouoter.go(2);	//go是历史记录前进后退,正数是前进,负数是后退
                    }
                }
            }
        }
    
    </script>
    

    组件的生命周期钩子

    ​ 1, 一个组件从创建到销毁的众多时间节点回调的方法
    ​ 2, 这些方法都是vue组件实例的成员
    ​ 3, 生命周期钩子的作用就是满足在不同的时间节点做需要完成的事

    <script>
        import Nav from '../components/Nav'
    	export default {
            data() {
                return {}
            },
            methods: {}
            components: {
                Nav,
            },
            beforeCreate() {
           		console.log('Home组件要创建了')
        }
        	creaeted() { // 重要方法: 在该钩子中完成后台数据的请求
                console.log('Home组件创建成功了')
            }
        	beforeMount() {
                console.log('Home组件准备加载')
            }
        	mounted() { // 特别耗时的数据请求, 可以延后到组件初步加载成功后,再慢慢请求
                console.log('Home组件加载完成')
            }
        	destroyed() {
                console.log('Home组件要销毁了')
            }
    </script>
    

    路由配置

    {
    	path: '/course/detail',
    	name: 'course-detail',
        component: CourseDetail
    }
    {
    	path: '/detail',
        redirect: '/course/detail'
    }
    this.$router.push('/course/detail');  ==  this.$router.push('/detail');
    this.$router.push('/course/detail?pk=1');  => this.$route.query.pk
    
    ​```````````````````````````````````````````````````````````````````````
    {
    	path: '/course/detail/:pk',
    	name: 'course-detail',
        component: CourseDetail
    }
    this.$router.push('/course/detail/10');  => this.$route.params.pk
    
    

    路由传参

    第一种

    <!--vue文件中-->
    <router-link :"`/course/detail?pk=${course.id}`">{{ course.title }}</router-link>
    <router-link :to="{
                      name: 'course-detail',
                      query: {pk: course.id}
                      }">{{ course.title }}
    </router-link>
    

    js路由配置

    {
        path: '/course/detail',
        name: 'course-detail',
        component: CourseDetail
    }
    

    第二种

    <router-link :to="`/course/${course.id}/detail`">{{ course.title }}</router-link>
    

    js路由配置

    {
        path: '/course/:pk/:uid/detail',
        name: 'course-detail',
        component: CourseDetail
    }
    

    总结:

    1、创建项目:vue create 项目名  -  babel、vue-router、vuex
    
    2、项目目录:
    	node_modules依赖(不同电脑依赖需要重新构建)
    	views:页面组件
    	components:小组件
    	router/index.js:路由配置文件 - 路径与页面组件对应关系
    	App.vue:根组件,固定五行话(看代码)
    	main.js:项目总脚本文件 - 配置所有环境,加载根组件
    	
    3、vue请求生命周期:
    	浏览器请求/user => router插件映射User.vue组件 => User.vue组件替换App.vue中的<router-view />占位符
    	注: i) 可以用 <router-link to="/user">用户页</router-link>完成标签跳转
    		ii) this.$router.push('/user')完成逻辑跳转
    		
    4、vue组件的生命周期钩子:组件 创建 到 销毁 中的时间节点回调的方法
    	created(){}  |  mounted(){}
    	
    5、路由跳转
    this.$router.push({name: '路由名', query: {拼接的参数}})
    this.$router.go(number)
    
    6、路由配置
    {
    	path: '/course/detail',
    	name: 'course-detail',
        component: CourseDetail
    }
    {
    	path: '/detail',
        redirect: '/course/detail'
    }
    this.$router.push('/course/detail');  ==  this.$router.push('/detail');
    this.$router.push('/course/detail?pk=1');  => this.$route.query.pk
    
    ​```````````````````````````````````````````````````````````````````````
    {
    	path: '/course/detail/:pk',
    	name: 'course-detail',
        component: CourseDetail
    }
    this.$router.push('/course/detail/10');  => this.$route.params.pk
    
    
    7、js类的原型:类属性
    
    8、配置全局css样式
    import '@/assets/css/global.css'
    require('@/assets/css/global.css');
    
    
    路由知识点概况:
    	1)路由配置:router/index.js
    	2)路由跳转与路由渲染:router-link、router-view、$router.push、$router.go
    	3)路由传参:两种传参
    """
    
  • 相关阅读:
    NSThread 多线程 三种方式
    CABasicAnimation 核心动画
    图片圆角属性
    GCD
    IOS 推送
    IOS 截图
    UIImage 截图
    UIImageView 动画
    AFN 判断网络状态
    Template 模式
  • 原文地址:https://www.cnblogs.com/LZF-190903/p/12070925.html
Copyright © 2020-2023  润新知