IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> cdn方式:vue+jq+vant 问题列表 -> 正文阅读

[JavaScript知识库]cdn方式:vue+jq+vant 问题列表

Vue官网:? Vue 实例 — Vue.js
注意事项:因为是cdn方式, vant官网的写法不完全使用,需要小改一下写法
1.Vue 完整生命周期:
2.new Vue()创建实例,进行双向绑定,尽量通过data数据操作页面,禁止直接操作元素,通过 v-model实现双向绑定
3.绑定事件:事件名称前添加@符号
4. 组件化
父组件传参子组件:? 动态数据属性 + :
? ? ? ? ? ? ? ? ? ? ?下图静态属性案例?
子组件传给父组件: 通过props获取父组件属性,取值?
$parent可以无线叠加,寻找祖父级别
this.$parent.属性?? vue生命周期问题 setTimeout才可以取到
this.$parent.方法?? vue生命周期问题 setTimeout才可以取到
this.$emit('父组件方法', this.autoName, this.searchVal);
注意:①如果涉及UI组件,this.$parent可能无反应,就多加.$parent试试
? ? ? ②this.$emit 调用父组件的方法名不支持驼峰,必须全小写
父组件获取子组件data数据、调用子组件方法:通过ref
子组件传值父组件: this.$emit(' 父组件方法 ', args );
子组件:
父组件:

5.过滤器

6.页面加载过程会有代码闪现
css?样式:
[v-cloak]{
? ? display: none;
}
html?页面:?涉及到js逻辑的全部加此属性
7.vant?无select组件,只有field,?手动封装select
Vue.component("van-select", {
    props: ["name"],
    data() {
        return {}
    },
    template: '<div class="van-cell van-field van-sel-box">\
               <label class="van-cell__title van-field__label" v-if="name">\
                    <span>{{ name }}</span>\
                    <div class="sel_arrow_shade"></div>\  // select文字居右时,箭头朝左,遮盖
               </label>\
               <slot></slot>\
               </div>',
    methods: {}
});


<van-select class="van-cell van-field" name="项目类型">
    <select v-model="project.project_type" class="van-cell van-field__control">
        <option :value="item.id" v-for="item in projectTypes" :key="item.id">{{ item.name 
           }}</option>
    </select>
</van-select>

8.vant list?上拉刷新,ajax?总是请求多次加载全部数据

onload :?添加setTimeout原因猜测:ajax请求过快,元素却还没渲染完,高度不定继续请求

替换成this.$nextTick?依然还是出现继续请求问题,需要添加setTimeout才可以

<van-list v-model="loading" :finished="finished" finished-text="没有更多了" @load="onLoad"
   :style="{height: winH-54 + 'px'}" :offset="100">
   <div class="list_one" v-for="(item, index) in list" :key="item.id">
        <a :href="`ck_xxlr_detail.html?id=${item.id}`" class="xmcx">
             <van-cell-group>
                  <img src="../../images/index/icon_kh.png" class="img_l" />
                  <p class="title">{{ item.project_name }}</p>
                  <p>数据来源:{{ item.project_principal }}</p>
                  <p>支持部门:{{ item.project_type_name }}</p>
             </van-cell-group>
        </a>
   </div>
</van-list>
new Vue({
    el: '#app',
    data() {
        return {
            winH: window.innerHeight,
            list: [],
            loading: false,
            finished: false,
            pageNumer: 1,
            pageSize: 10
        };
    },
    methods: {
        onLoad: function() {
            var _this = this;
            setTimeout(() => { 
                _this.loading = true;
                _this.getData();
            }, 300);
        },
        getData: function(){
            var _this = this;
            $.ajax({
                type:"POST",
                url:"../../../project/getProjectList",
                dataType: "json",
                data:{
                    pageNumber: _this.pageNumer,
                    pageSize : _this.pageSize,
                    searchName: _this.searchVal
                },
                success:function(result){
                    if(result.ret.succeed){
                        _this.list = _this.list.concat(result.page.list);
                        _this.loading = false;
                        // 如果当前条数 == 总条数,则已经没有数据
                        if (_this.list.length >= result.page.totalRow) {
                            _this.finished = true;
                        }else {
                            _this.finished = false;
                            _this.pageNumer ++;
                        };
                    } else {
                        _this.$toast(result.ret.retMsg);
                    }
                }
            });
        }
    },
    mounted() {
        
    }
});

  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-03-30 18:14:48  更:2022-03-30 18:16:43 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 4:48:06-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码