jsp项目使用vue.js

无敌的宇宙
无敌的宇宙
擅长邻域:Java,HTML,JavaScript,MySQL,支付,退款,图片上传

分类: Java 专栏: java vue 标签: jsp项目使用vue

2023-11-04 11:22:10 388浏览

jsp项目里遇到频繁操作dom和ajax的功能时太麻烦了使用vue.js事半功倍。

直接上代码:

引入vue.js和axios.js(主要是发送请求的)

<script type="text/javascript" src="${ctxf }/js/vue.min.js"></script>
<script type="text/javascript" src="${ctxf }/js/axios.min.js"></script>

添加dom节点commentApp

 <div id="commentApp">

                        <textarea id="commentCont" class="form-control" placeholder="请输入评论"></textarea>

                        <button type="button" class="btn btn-primary pull-right"  @click="subComment" ${empty loginU?'disabled':''}>评论</button>




                        <p style="margin-top: 50px;">评论({{total}})</p>
                        <!-- 左对齐 -->
                        <div class="media" v-for="(t,i) in li">
                            <div class="media-left">
                                <img decoding="async" :src="t.faceimg" class="media-object" style="width:60px;height: 60px;border-radius: 50%">
                            </div>
                            <div class="media-body">
                                <h4 class="media-heading">{{t.nickname}}
                                    <button @click="delComment(t,i)" v-if="uid==t.uid" class="btn btn-danger btn-sm pull-right"><i class="fa fa-trash"></i>删除</button>
                                </h4>
                                <p style="word-wrap: break-word; word-break:break-all ">{{t.cont}}<br><small>评论时间:{{t.cts}}</small></p>
                                <hr>
                            </div>
                        </div>
                        <p @click="getCommentPage" style="cursor: pointer;text-align: center;">{{more}}</p>
                </div>

使用

//评论----------------------------
    let cv= new Vue({
        el: '#commentApp',
        data: {

            more:'评论加载中...',
            uid:'',
            li: [ ],
            total:0,
            query:{
                pageNo:1,
                pageSize:10,
                sid: ${a.id}  ,
            }


        },
        methods:{
            delComment(t,i){
                let url='${ctx}/lv/scenicComment/delajax?id='+t.id;
                axios.post(url) .then(function (res) {
                    cv.li.splice(i,1);

                });
            },
            subComment(){
                let c=$('#commentCont').val();
                if(c==''){
                    alert('请输入评论');return;
                }
                if(c.length>250){
                    alert(' 评论250字以内');return;
                }
                let url='${ctx}/lv/scenicComment/save?sid='+this.query.sid+"&cont="+c;
                axios.post(url) .then(function (res) {
                    cv.li.unshift(res.data.obj);
                    $('#commentCont').val('')
                });
            },
            getCommentPage(){
                this.more='评论加载中...';
                let url='${ctx}/lv/index/scenicCommentpage?sid='+this.query.sid+"&pageNo="+this.query.pageNo;
                axios.post(url ) .then(function (res) {
                    console.log(res)
                    cv.li=cv.li.concat(res.data.obj.list);
                    cv.total=res.data.obj.total;
                    if(res.data.obj.list.length==0){
                        cv.more='暂无评论';return;
                    }
                    cv.query.pageNo=cv.query.pageNo+1;
                    cv.more='点击加载更多评论...';

                });

            },
        },
        mounted(){
            this.getCommentPage();
            this.uid=$('#uid').val();
        }
    })

注意:使用axios传参需要用get的方式拼接参数?xxxx=xx&xx=xx,否则传不过去,具体原因没细究

好博客就要一起分享哦!分享海报

此处可发布评论

评论(0展开评论

暂无评论,快来写一下吧

展开评论

您可能感兴趣的博客

客服QQ 1913284695