Vue学习记录01-vue模板语法

详细参考:https://cn.vuejs.org/v2/api
包含系统指令和自定义指令

一、插值

1 v-text
        <div id="app" v-text="content"></div>
        <script>
            var vm1 = new Vue({
                el: "#app",
                data: {
                    "content": "app"
                }
            });
        </script>

也可以使用{{}}

    <!-- # 一、插值 -->
    <!-- 01,{{}}文本 -->
    <div id="app1">{{content}}</div>
    <script>
        var vm1 = new Vue({
            el: "#app1",
            data: {
                "content": "app1"
            }
        });
        // 内容都会被原样输出替换
    </script>
2 v-html
    <!-- 02,v-html -->
    <div id="app2" v-html="content">123</div>
    <script>
        var vm2 = new Vue({
            el: "#app2",
            data: {
                "content": "<div>app2</div>"
            }
        });
        // 内容会被以html渲染到其内容
    </script>
3 v-bind

用法一,监控属性。可以简写为:

    <!-- 03,v-bind属性绑定 -->
    <a id="app3" v-bind:href="src">app3跳转到百度</a>
    <script>
        var vm3 = new Vue({
            el: "#app3",
            data: {
                "src": "http://www.baidu.com"
            }
        });
    //https://www.baidu.com
    </script>

用法二,传入对象

    <a id="app" v-bind={href:src}>app跳转到百度</a>
    <script>
        var vm3 = new Vue({
            el: "#app",
            data: {
                "src": "http://www.baidu.com"
            }
        });
    </script>

eg:

  <!-- 对象有无引号都可以 -->
  <a id="app3" v-bind="{href:src+'?id='+id}">app3跳转到百度</a>
  <a id="app3" v-bind={href:src+'?id='+id}>app3跳转到百度</a>
  <script>
  var vm3 = new Vue({
    el: "#app3",
    data: {
      "src": "http://www.baidu.com",
      "id":5
    }
  });
 //https://www.baidu.com/?id=5
</script>

注意:

1)不能绑定数组:

<div v-bind:data-index="index[0]"></div>

data(){
    return index:[0,1,2,3]
}

// 后面通过改变this.index[0]的值,dom身上不会发生变化。

二、双向数据绑定

1 v-model

可以简写::

<div id="app">
  <input type="text" v-model="value1">
  <p>{{value1}}</p>
</div>
<script>
  var vm = new Vue({
    el: "#app",
    data: {
      value1: "0",
    },
  });
// 输入框和p标签同步显示
</script>

三、事件绑定

1 v-on

基本使用

可以简写:@

    <button id="app" v-on:click="go">点我</button>
    <script>
        var vm = new Vue({
            el: "#app",
            methods:{
                go:()=>{
                    alert("我被点击了~");
                }
            }
        });
    // 点击后弹出警告
    </script>

v-on修饰符

1) v-on的事件修饰符

由于js原生的方法对象中有很多的默认方法:比如说阻止默认行为,比如说阻止事件冒泡
.stop:帮助我们阻止事件冒泡
.prevent:帮助我们阻止默认行为
.capture
.self
.once
.passive

eg.

<a href="http://www.baidu.com" @click.prevent.stop="go">百度</a>

2)v-on的按键修饰符:

以下修饰符仅仅中是vue中为部分按钮准备的别名
    .enter:给回车键绑定事件
    .tab:给tab键绑定事件
    .delete (捕获“删除”和“退格”键)
    .esc
    .space
    .up
    .down
    .left
    .right
如果要给这些按钮之外的按钮准备事件可以使用keycode:键盘数字。

eg.

<input type="text" v-model="v1" v-on:keyup.13="getV1">

四、判断指令

1 v-if

是否渲染节点。

    <div id="app" v-if="flag">DIV</div>
    <script>
        var vu = new Vue({
            el: "#app",
            data: {
                flag: false,
            }
        });
    </script>
2 v-show

是否显示节点。

    <div id="app" v-show="flag">DIV</div>
    <script>
        var vu = new Vue({
            el: "#app",
            data: {
                flag: false,
            }
        });
    </script>
3 v-for
    <div id="app">
        <ul>
            <li v-for="(item, index) in arr">{{index}} : {{item}}</li>
        </ul>
    </div>
    <script>
        var vu = new Vue({
            el: "#app",
            data: {
                arr: ["联想","苹果","戴尔"],
            }
        });
    </script>

五、自定义指令

自定义指令必须都是小写,单词可以使用-连接。

1 局部绑定
    <input type="text" id="app" v-focus>
    <script>
        var vu = new Vue({
            el:"#app",
            directives:{
                focus:{
                    inserted:function(el){
                        el.focus();
                    }
                }
            },
        });
     // input标签自动获取焦点
    </script>
2 全局绑定

eg1,获取焦点

    <input type="text" id="app" v-focus>
    <script>
        Vue.directive("focus", {
            inserted: function (el) {
                el.focus();
            }
        });

        var vu = new Vue({
            el: "#app",
        });
    // input标签自动获取焦点
    </script>

eg2,改变颜色

    <input type="text" id="app" v-color="color">
    <script>
        Vue.directive("color", {
            inserted: function (el,binding) {
               el.style.background = binding.value;
            }
        });

        var vu = new Vue({
            el: "#app",
            data:{
                color:"red",
            }
        });
    </script>

六、综合案例

1 计算器
    <div id="app">
            <input type="text" v-model="value1">
            +
            <input type="text" v-model="value2">
            <button v-on:click="run">=</button>
            <label>{{result}}</label>
    </div>
    <script>
        var vw = new Vue({
            el:"#app",
            data:{
                value1:0,
                value2:0,
                result:0,
            },
            methods:{
                run:function(){
                    this.result = +this.value1 + +this.value2;
                }
            }
        });
    </script>
2 商品查询

实现了增删改查。

vue模板语法


  <style>
        table {
            border: 1px solid #000;
            border-collapse: collapse;
            margin: 0 auto;
            width: 800px;
            text-align: center;
        }

        tr,
        td,
        th {
            border: 1px solid #000;
            height: 30px;
        }
    </style>
    <table id="app">
        <tr>
            <td colspan="3">
                ID :
                <input type="text" v-model="id"> 名称 :
                <input type="text" v-model="name">
                <button v-on:click="add">{{option}}</button>
            </td>
        </tr>

        <tr v-color="color">
            <th>ID</th>
            <th>品牌名称</th>
            <th>操作</th>
        </tr>

        <tr v-for="(item,index) in dataList">
            <td>{{item.id}}</td>
            <td>{{item.name}}</td>
            <td>
                <a href="javascript:;" v-on:click="edit(index)">编辑</a>
                <a href="javascript:;" v-on:click="del(index)">删除</a>
            </td>
        </tr>
    </table>

    <script>
        Vue.directive("color", {
            inserted: function (el, binging) {
                el.style.background = binging.value;
            }
        });

        var vw = new Vue({
            el: "#app",
            data: {
                dataList: [
                    { id: 1, name: "宝马" },
                    { id: 2, name: "奔驰" },
                ],
                color: '#0094ff',
                id: "",
                name: "",
                option: "添加",
                cruentIndex: 0,
            },
            methods: {
                add: function () {
                    if (this.option == "添加") {
                        var obj = {
                            id: +this.id,
                            name: this.name
                        };
                        if (obj.id == 0 || obj.name == "") {
                            return;
                        }
                        this.dataList.push(obj);

                    } else if (this.option == "修改") {
                        this.dataList[this.cruentIndex].id = this.id;
                        this.dataList[this.cruentIndex].name = this.name;
                        this.option = "添加";
                    }

                    this.id = "";
                    this.name = "";
                },
                del: function (index) {
                    this.dataList.splice(index, 1);
                },
                edit: function (index) {
                    this.id = this.dataList[index].id;
                    this.name = this.dataList[index].name;
                    this.option = "修改";
                    this.cruentIndex = index;
                }
            }
        });

    </script>

最新的笔记更新在:
https://github.com/1097364388/learning

<全文结束>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Vue-Quill-Editor是一个vue组件,用于在Vue项目中使用富文本编辑器。针对Vue 3和TypeScript语法,你可以按照以下步骤进行配置和使用: 1. 首先,在你的Vue项目中安装Vue-Quill-Editor依赖包。你可以使用npm或yarn命令进行安装。 2. 在Vue组件中引入Vue-Quill-Editor组件,并在components选项中注册它。你可以使用import语句导入QuillEditor组件,然后在components选项中添加它。 3. 在模板中使用Vue-Quill-Editor组件。你可以通过在模板中添加<QuillEditor />标签来使用它。你还可以通过v-model指令将编辑器的内容绑定到一个Vue的data属性上。 4. 根据需要,你可以使用Vue-Quill-Editor提供的不同的配置选项来自定义编辑器的行为和外观。你可以将这些选项作为组件的属性传递给QuillEditor组件。 5. 对于TypeScript支持,你需要按照Vue 3的TypeScript语法规则进行类型定义和类型注解。根据需要,你可以为QuillEditor组件和编辑器的内容创建类型定义。 下面是一个示例代码,展示了如何在Vue 3项目中使用Vue-Quill-Editor和TypeScript语法: ```vue <template> <div> <QuillEditor v-model="editorContent" :options="editorOptions" /> </div> </template> <script lang="ts"> import { defineComponent } from 'vue'; import { QuillEditor } from '@vueup/vue-quill'; export default defineComponent({ components: { QuillEditor }, data() { return { editorContent: '', editorOptions: { // 配置选项 } }; } }); </script> ``` 请注意,以上代码仅为示例,你需要根据你的项目需求和实际情况进行相应的配置和调整。同时,你还可以参考Vue-Quill-Editor的文档,了解更多关于配置选项和使用方法的详细信息。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *3* [Vue3适用的富文本编辑器(vue2.0 vue-quill-editor)](https://blog.csdn.net/weixin_55609002/article/details/126339278)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* [支持vue3.0+ts 的富文本记录](https://blog.csdn.net/weixin_43909743/article/details/124882802)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值