Python v-once指令 v-cloak指令(了解) 条件指令(v-if v-show)v-pre原义指令(了解) v-for循环指令 compute计算属性监听和watch属性监听 组件及父子数据传输

v-once指令

v-once:单独使用,限制的标签内容一旦赋值,便不可被动更改(如果是输入框,可以主动修改)

示例:

"app"> "text" v-model="msg"> "text" v-model="msg" v-once>

{{ msg }}

{{ msg }}

v-once指令

v-cloak指令(了解)

v-cloak:防止页面闪烁(也就是,防止vue还没加载,显示他的语法和渲染效果出现乱码)

示例:


"zh">

    "UTF-8">
    
    


   
    
    
"app" v-cloak> {{ }} {{ }} {{ }}
v-cloak

条件指令:v-if和v-show

两种都可以控制标签的显隐,绑定的值是布尔类型值,当都隐藏标签时
         v-if是不渲染标签(没有渲染效果,代码层面看不到)
         v-show以 display:none 方式渲染(没有渲染效果,可以看到代码)
-->

示例:

!DOCTYPE html>
"zh">

    "UTF-8">
    


    
"app">

if="isShow">if条件指令

"isShow">show条件指令

示例
     v-if="变量"
    v-else-if="变量"
    v-else
    一组分支,上成立分支会屏蔽下方所有分支,else分支没有条件,在所有分支不成立后才显示else分支
-->

点击切换页面示例:


"zh">

    "UTF-8">
    
    


    
"app">

if="0">ififif

else-if="0">elseif

else>else

class="em">

class="box r" v-if="showName == 'rBox'">
class="box y" v-else-if="showName == 'yBox'">
class="box b" v-else>
点击切换页面示例

v-pre原义指令(了解)

v-pre指令可以在vue控制范围内,形成局部vue不控制区域(局部不解析vue语法,原样显示)

"zh">

    "UTF-8">
    


    
"app">

{{ msg }}

{{ }} if="hehe">

{{ }} if="hehe">

v-pre原义指令示例

v-for循环指令

1) 遍历字符串:可以只逐一遍历字符,也可以连同遍历索引
    

for="ch in str">

|

for="(ch, index) in str">

2) 遍历数组(列表):可以只逐一遍历成员元素,也可以连同遍历索引

for="ele in arr">

|

for="(ele, index) in arr">

3) 遍历对象(字典):可以只逐一遍历成员元素,也可以连同遍历成员键(key),还可以遍历成员key索引

for="v in dic">

|

for="(v,k) in arr">

|

for="(v,k,i) in arr">

示例:


"zh">

    "UTF-8">
    


    
    
"app">

{{ str }}

{{ str[0] }}

for="ch in str">{{ ch }}
for="(ch, i) in str" :key="ch + i">{{ i }}{{ ch }}

for="(ele, i) in arr">{{ i }}{{ ele }}

for="ele in dic">{{ ele }}

for="(ele, k) in dic">{{ k }}:{{ ele }}

for="(ele, k, i) in dic">{{ i }}{{ k }}:{{ ele }}

v-for循环指令

todolist留言板案例

1) 留言就是往留言数组中添加数据,删除留言就是从留言数组中移除数据

2) 前台数据库:localStorage 和 sessionStorage
    localStorage永久保存数据(关闭计算机和浏览器数据还是会存在,只有手动清除)
    sessionStorage临时保存数据(当所属页面标签被关闭,数据被清空)
    
3) 前台localStorage 和 sessionStorage数据库存储的值是字符串类型,所以要存放arr、dic等复杂数据需要JSON参与

示例:


"zh">

    "UTF-8">
    
    


    
"app">

"text" v-model="userMsg">

  • for="(msg, index) in msgs" @click="deleteMsg(index)"> {{ msg }}
留言板案例

实例成员 - 插值表达式符号(了解):delimiters

主要是更改插值表达式的符号;类似于mysql中更改sql语句的结束符号

示例:


"zh">

    "UTF-8">
    


    
"app"> {{ msg }} {[ msg ]}
示例

监听:compute计算属性(内部监听)watch属性监听(外部监听)

1.compute计算属性(内部监听,内部值发生改变立即调用函数)

// 1) computed是用来声明 方法属性 的
// 2) 声明的方法属性不能在data中重复定义
// 3) 方法属性必须在页面中渲染使用,才会对内部出现的所有变量进行监听
// 4) 计算属性的值来源于监听方法的返回值

示例:

"app"> 姓:"text" v-model="fName"> 名:"text" v-model="lName"> 姓名:{{ flName }}
内部监听

2.watch属性监听(外部监听,外部值发生改变立即调用函数)

// 1) watch为data中已存在的属性设置监听事件
// 2) 监听的属性值发送改变,就会触发监听事件
// 3) 监听事件的方法返回值没有任何意义
"app"> 姓名:"text" v-model="fullName"> 姓:{{ firstName }} 名:{{ lastName }}
watch监听

组件

// 1) 组件:一个包含html、css、js独立的集合体,这样的集合体可以完成页面解构的代码复用
// 2) 分组分为根组件、全局组件与局部组件
//      根组件:所有被new Vue()产生的组件,在项目开发阶段,一个项目只会出现一个根组件
//      全局组件:不用注册,就可以成为任何一个组件的子组件
//      局部组件(使用的较多):必须注册,才可以成为注册该局部组件的子组件
// 3) 每一个组件都有自身的html结构,css样式,js逻辑
//      每一个组件其实都有自己的template,就是用来标识自己html结构的
//      template模板中有且只有一个根标签
//      根组件一般不提供template,就由挂载点的真实DOM提供html结构
// 4) 除根组件的其他组件,数据要有局部作用域,保证组件复用时,各组件间数据的独立性
// 5) 在多组件共处时,在哪个组件模板中出现的变量,有当前组件组件提供

1.根组件:

由new Vue()产生的组件,在项目开发阶段,一个项目只会出现一个根组件;

根组件默认不写使用挂载点,定义的话使用自己的html结构

示例:

 


"zh">

    "UTF-8">
    


    
"app">

{{ msg }}

"main">
根组件

 

2.局部组件

// 1) 创建局部组件
// 2) 在父组件中注册该局部组件
// 3) 在父组件的template模板中渲染该局部组件

示例:


"zh">

    "UTF-8">
    
    


    
"app">
局部组件

3.全局组件

// 1) 创建全局组件
// 2) 在父组件的template模板中直接渲染该全局组件

示例:


"zh">

    "UTF-8">
    
    


    
"app"> <global-tag>global-tag> <global-tag>global-tag> <global-tag>global-tag>
全局组件示例

4.组件交互-父传子

// 数据交互 - 父传子 - 通过绑定属性的方式
// 1) 父组件提供数据
// 2) 在父组件模板中,为子组件标签设置自定义属性,绑定的值由父组件提供
// 3) 在子组件实例中,通过props实例成员获得自定义属性

示例:


"app"> for="info in infos" :key="info.image" :myinfo="info">
"app"> for="info in infos" :key="info.image" :myinfo="info">
父传子

4.组件交互-子传父

// 组件交互-子传父
// 1) 子组件提供数据
// 2) 子组件内部通过触发系统事件,发送一个自定义事件,将数据携带出来(子组件通过子组件事件函数发送数据和自定义事件)
// 3) 父组件位子组件标签的自定义属性通过方法实现,就可以通过参数拿到子组件传递处理的参数(父组件定义组件标签里自定义事件函数拿到数据)

示例:


"app">

"text" v-model="userMsg">

    "removeAction" v-for="(msg, i) in msgs" :msg="msg" :index="i" :key="msg">
子传父

 

你可能感兴趣的:(Python v-once指令 v-cloak指令(了解) 条件指令(v-if v-show)v-pre原义指令(了解) v-for循环指令 compute计算属性监听和watch属性监听 组件及父子数据传输)